java 抽象类的实现与具体解析 抽象类与接口系列之一


先有一个前提,抽象类一般是用来做什么用的

我的理解是在一些复杂的项目中,都用到一个方法暂且叫“方法1”

要怎样能统一使用这个“方法1”且方法都能很好的解决问题。

这是抽象类场景应用。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
package java_10;

public class java_10_1 {

public static void main(String[] args) {
// TODO 自动生成的方法存根
// A1 a=new A1(); 错误,因为抽象类不能实例化,没有价值的
C1 c = new C1(); // C1 是具体类,是有价值的
c.meth_Abstract1();
D1 d1 = new D1();
d1.meth_Abstract2();
d1.meth_Abstract3();
}
}
// 具体类是 对一个类的抽象,可以实例化。
// 抽象类是 对多个类的抽象,不能实例化。

abstract class A1 // abstract 用来修饰一个抽象类
{
}

abstract class B1 // 抽象方法:有两个特点
{ //1.在定义方法时用abstract 来修饰
//2.且抽象方法没有方法体
public abstract void meth_Abstract1();
}

abstract class B2
{
// public abstract static void meth_Abstract3(); 报错 static不能与 abstract
// extends 同时使用
public abstract void meth_Abstract2();

public abstract void meth_Abstract3();
}

class C1 extends B1 // 抽象类的价值,要求定义出它的派生类,且为具体类
{
@Override
public void meth_Abstract1() {
// TODO 自动生成的方法存根
System.out.println(" C1 extends B1 ");
}
}

class D1 extends B2 {
@Override
public void meth_Abstract2() {
// TODO 自动生成的方法存根
System.out.println("Test1_能不能写多个子类");
}

public void meth_Abstract3() {
// TODO 自动生成的方法存根
System.out.println("Test2_能不能写多个子类");
}
}
Evian Z wechat
打赏由马云爸爸买单,谢谢请我喝牛奶.