抽象类
抽象类
- 抽象类无法实例化,无法创建对象,它是用来被子类继承的
- 抽象类虽然无法实例化,但是有构造方法,供子类使用
- 抽象类的子类可以是抽象类,也可以是非抽象类
- final abstract不能联用
抽象方法
- 没有方法体,以分号结尾
- 修饰符列表中以abstract修饰
public abstract void func();
- 抽象类中不一定有抽象方法,抽象方法必须在抽象类中。
- 抽象列中也可以有非抽象方法
一个非抽象类继承了抽象类,必须将抽象类中的抽象方法全部实现
abstract去掉,给出方法体
面向抽象编程
抽象父类的引用指向非抽象子类的对象,通过父类引用去调用子类中的方法,也就是多态,这样称之为面向抽象编程
面试题
Q:java中没有方法体的方法都是抽象方法吗?
A:不对,Object类中就有很多没有方法体的方法,以;结尾。