抽象类
形象办法的概念
形象办法次要指不能具体实现的办法, 并且应用 abstract 关键字润饰, 就也就没有办法体
具体格局如下: 拜访权限 abstract 返回值类型 办法名(形参列表);
public abstract void cry();
抽象类的概念
抽象类次要指不能具体实例化的类并且应用 abstract 关键字润饰, 也就是不能创建对象
抽象类和形象办法的关系
- 抽象类中能够有成员变量, 构造方法, 成员办法
- 抽象类中能够没有形象办法, 也能够有形象办法
- 领有形象办法的类必须是抽象类. 因而真正意义上的抽象类应该是 具备形象办法并且应用
abstract
关键字润饰的类
抽象类的实际意义
- 抽象类的实际意义不在于创建对象而在于被继承
- 当一个类继承抽象类后必须重写形象办法, 否则该类也变成抽象类. 也就是抽象类对子类具备强制性和规范性. 因而叫做模板设计模式
开发教训分享
- 在当前的开发中举荐应用 多态 的格局. 此时父类类型援用间接调用的所有办法肯定是父类中领有的办法. 若当前更换子类时, 只须要将
new
关键字前面的子类类型批改而其它中央无需扭转就能够立刻失效. 从而进步了代码的可维护性和可扩展性 - 该形式的毛病就是: 父类援用不能间接调用子类独有的办法, 若调用则须要强制类型转换
接口
接口的概念
- 接口就是一种比抽象类还形象的类, 体现在 所有办法都为形象办法
- 定义类的关键字是
class
, 定义接口的关键字是interface
类和接口之间的关系
抽象类和接口的次要区别
- 定义抽象类的关键字是
abstract class
, 而定义接口的关键字是interface
- 继承抽象类的关键字是
extends
, 而实现接口的关键字是implements
- 继承抽象类反对 单继承 , 而实现接口反对 实现
- 抽象类中能够有构造方法, 而接口中不能够有构造方法
- 抽象类中能够有成员变量, 而接口中只能够有常量
- 抽象类中能够有成员办法, 而接口中只能够有形象办法
- 抽象类中减少办法时子类能够不必重写 , 而接口中减少办法时实现类须要重写(Java8 以前的版本)
- 从 Java8 开始减少新个性, 接口中容许呈现非形象办法和静态方法, 但非形象办法须要应用
default
关键字润饰 - 从 Java9 开始减少新个性, 接口中容许呈现公有办法