语法格式:
- 抽象类:被abstract修饰的类
- 抽象方法:被abstract修饰的没有方法体的方法,包含抽象方法的类必须是抽象类
特点:
- 抽象类不能实例化
- 抽象类中是包含构造器的,因为子类对象实例化时,需要直接或间接的调用
- 抽象类中可以没有抽象方法,但抽象方法所在的类一定是抽象类
- 抽象方法只有方法的声明,没有方法体
- 抽象方法其功能是确定的,只是不知道如何实现
- 子类必须重写父类的所有抽象方法才能够实例化,否则仍为抽象类
abstract不能与哪些关键字使用:
- private:私有方法不能重写
- static:避免静态方法使用类进行调用
- final:final方法不能被重写,final类不能有子类
public class AbstractTest {
public static void main(String[] args) {
SuperClass s1 = new SuperClass(); // 报错
SubClass s2 = new SubClass();
}
}
// 抽象类不能实例化
abstract class SuperClass {
public abstract void method1();
}
class SubClass extends SuperClass {
@Override
public void method1() {
// 子类将父类抽象方法具体实现
// ...
}
}