继承

发布时间 2023-04-06 10:38:41作者: 寇

继承

为什么要继承

两个类相同属性太多是我们就会采用继承,是为了解决代码的复用性,使得代码看的更简洁

继承的基本介绍和示意图

继承可以解决代码复用,让我们的编程更加接近人的思维,当多个类存在相同的属性和方法时,可以从这些类中抽象出父类,在父类中定义这些属性和方法,只要通过extends关键字来声明继承父类即可

继承的基本语法

class 子类 extends 父类{

}

  • 子类会自动拥有父类定义的属性和方法
  • 父类又叫超类,基类
  • 子类又叫派生类

继承的深入讨论以及细节

  1. 子类继承了所有的属性和方法,但是私有属性和私有方法不能在子类中继承,需要通过公共的方法去访问
  2. 子类必须调用父类的构造器,完成父类的初始化
  3. 当创建子类对象时,不管使用子类的那个构造器,默认情况下总会去调用父类的无参构造器,如果父类没有提供无参构造器,那么就必须使用super()去指定父类的构造器完成对父类的初始化,否则无法编译
  4. 如果希望指定去调用父类的某个构造器,则显示的调用一下
  5. super在使用的时候必须放在第一行
  6. super()和this()都只能放在构造器第一行,因此这两个方法不能同时使用
  7. 所有的类都是Object类的子类,Object是所有类的基类
  8. 父类构造器的调用不限于直接父类,将一直追溯到Object类(顶级父类 )
  9. 子类最多只能继承一个父类(直接继承),即Java中是单继承机制
  10. 不能滥用继承,子类和父类之间必须满足is-a的逻辑关系

继承的本质分析(重要)

  1. 当子类创建好对象时,建立查找关系
  • 首先看子类有没有该属性和方法,如果有则直接用,若没有就向父类访问,若还没,就会向父类的父类访问,直到有为止