13 Java面向对象之抽象与接口

JavaSE 基础之十三

13 Java面向对象之抽象与接口

① 抽象类

  1. 抽象的基本概念
    1. 使用abstract关键字可以声明一个抽象类,该关键字可以出现在类声明时class关键字前的任何地方。
    2. 将父类声明为抽象后,仅有的改变是我们不能再实例化一个父类对象,其他的所有保持不变。
  2. 抽象类与普通类的区别
    1. 抽象类里边可以有抽象方法和普通方法,但是普通类里边只能有普通方法。
    2. 将父类声明为抽象后,不能再实例化父类对象,普通类无影响。
    3. 普通类子类继承父类,如果父类是抽象类且有抽象方法,子类必须要重写,如果是普通父类,则没有要求必须重写。
  3. 抽象类的特点
    1. 在类的前面加上abstract,当前类就变成抽象类。如果一个类里边定义抽象方法,当前类必须是抽象类。
    2. 在抽象类里边也可以定义普通方法。
    3. 抽象方法里面必须有abstract来修饰才代表抽象方法。
  4. 抽象类的使用场景
    1. 在某些场景下,父类只知道子类包含哪些行为,但是不知道行为的具体实现是什么样的,这个时候就应该定义为抽象类。
    2. 从多个类中去抽象一个父类出来,利用这个父类作为子类的模版,从而避免自己的随意设计。
  5. 抽象类的使用规范
    1. 子类继承父类,如果父类里面有抽象方法,子类必须要重写,父类普通成员方法没有要求。
    2. 一个抽象类去继承另外一个抽象类,抽象方法可以不用重写。

② 接口

  1. 接口的基本概念
    1. 接口是抽象方法和常量定义的一个集合。
    2. 从本质上来讲,接口是一种特殊的抽象类,接口中所定义的方法全是抽象方法,所定义的变量全是常量。
  2. 接口的作用
    1. 接口里面定义的方法全都是抽象方法,子类实现接口的实现,必须实现所有的抽象方法,对子类的方法做了一个约束。不能让子类乱写方法,统一在接口中。
    2. 解决了java中一个类只能单继承的问题,一个类可以实现多个接口,弥补了以前单继承不足的问题。
    3. 实现接口其实也是一种继承关系。
    4. 一个类可以实现多个接口,完成多重继承。
    5. 接口中声明的属性默认就是public static final类型的。
    6. 接口中只能定义抽象方法。
    7. 接口可以继承其它接口,一个接口可以继承多个接口。

posted on 2019-03-18 20:20  PenjayFeng  阅读(157)  评论(0编辑  收藏  举报

导航