13 Java面向对象之抽象与接口
13 Java面向对象之抽象与接口
① 抽象类
- 抽象的基本概念
- 使用abstract关键字可以声明一个抽象类,该关键字可以出现在类声明时class关键字前的任何地方。
- 将父类声明为抽象后,仅有的改变是我们不能再实例化一个父类对象,其他的所有保持不变。
- 抽象类与普通类的区别
- 抽象类里边可以有抽象方法和普通方法,但是普通类里边只能有普通方法。
- 将父类声明为抽象后,不能再实例化父类对象,普通类无影响。
- 普通类子类继承父类,如果父类是抽象类且有抽象方法,子类必须要重写,如果是普通父类,则没有要求必须重写。
- 抽象类的特点
- 在类的前面加上abstract,当前类就变成抽象类。如果一个类里边定义抽象方法,当前类必须是抽象类。
- 在抽象类里边也可以定义普通方法。
- 抽象方法里面必须有abstract来修饰才代表抽象方法。
- 抽象类的使用场景
- 在某些场景下,父类只知道子类包含哪些行为,但是不知道行为的具体实现是什么样的,这个时候就应该定义为抽象类。
- 从多个类中去抽象一个父类出来,利用这个父类作为子类的模版,从而避免自己的随意设计。
- 抽象类的使用规范
- 子类继承父类,如果父类里面有抽象方法,子类必须要重写,父类普通成员方法没有要求。
- 一个抽象类去继承另外一个抽象类,抽象方法可以不用重写。
② 接口
- 接口的基本概念
- 接口是抽象方法和常量定义的一个集合。
- 从本质上来讲,接口是一种特殊的抽象类,接口中所定义的方法全是抽象方法,所定义的变量全是常量。
- 接口的作用
- 接口里面定义的方法全都是抽象方法,子类实现接口的实现,必须实现所有的抽象方法,对子类的方法做了一个约束。不能让子类乱写方法,统一在接口中。
- 解决了java中一个类只能单继承的问题,一个类可以实现多个接口,弥补了以前单继承不足的问题。
- 实现接口其实也是一种继承关系。
- 一个类可以实现多个接口,完成多重继承。
- 接口中声明的属性默认就是public static final类型的。
- 接口中只能定义抽象方法。
- 接口可以继承其它接口,一个接口可以继承多个接口。
Association between wise men is as pure as water.
posted on 2019-03-18 20:20 PenjayFeng 阅读(157) 评论(0) 编辑 收藏 举报