抽象类必须要有抽象方法?
抽象类不一定非要有抽象方法,但是具有抽象方法的类必须是抽象类
普通类和抽象类的区别
- 普通类不能包含抽象方法,抽象类可以包含抽象方法
- 抽象类不能直接实例化,普通类可以直接实例化
抽象类可以使用 final 修饰?
不能,定义抽象类就是让其他类继承的,如果使用 final 修饰,则此类无法被继承,因此产生矛盾,抽象类不能使用 final 修饰
接口与抽象类有什么区别
- 实现:抽象类的子类使用 extends 来继承;接口必须使用 implements 来实现
- 构造函数:抽象类可以有构造函数;接口不能有构造函数
- main 方法:抽象类可以有 main 方法,并且可以运行;接口不能有 main 方法
- 实现数量:类可以实现很多接口;但只能继承一个抽象类
- 访问修饰符:抽象类中的方法可以使任意访问修饰符;接口中的方法默认使用 public 修饰