抽象类
一. 抽象类(Abstract Class)
public abstract class AbstractModel {
public abstract void doSomething();
}
- 抽象类:被abstract修饰的类
- 可以定义抽象方法
- 不能实例化,但可以自定义构造方法
- 子类必须实现抽象父类中的所有抽象方法(除非子类也是一个抽象类)
- 可以像非抽象类一样定义成员变量、常量、嵌套类型、初始化块、非抽象方法等
- 也就是,抽象类也可以完全不定义抽象方法
public abstract class AbstractModel {
public int p1 = 10;
public double p2 = 100.0;
public abstract void test1();
public abstract void test2();
}
public abstract class AbstractSubModel extends AbstractModel {
@Override
public void test1() {
}
}
public class ThrAbstractSubModel extends AbstractSubModel{
@Override
public void test1() {
super.test1();
}
@Override
public void test2() {
}
}
- 常见使用场景
- 抽取子类的公共实现到抽象父类中,要求子类必须要单独实现的定义成抽象方法
二. 接口(Interface)
后续。。。。
|