java类的继承知识点

文章目录

      • 1.java不支持多继承
      • 2.子类不能拥有父类的private成员
      • 3.子父类定义相同的成员变量-this,super
      • 4.方法重写(方法覆盖)
      • 5.继承中的构造函数

1.java不支持多继承

java不支持多继承,即不支持继承多个父类。因为多继承存在安全隐患,当多个父类中定义了相同的成员,子类对象不确定运行哪一个。
java类的继承知识点_第1张图片

2.子类不能拥有父类的private成员

子类拥有父类中非pirvate的成员

3.子父类定义相同的成员变量-this,super

3、子类父类定义了相同的成员变量,用this,super关键字区分。如果没有使用关键字,默认为this。
this.name 先到子类中找,如果子类定义了name,就使用子类的;如果子类没有定义,父类中定义了,就使用父类的name。
super.name 直接使用父类中的name。
java类的继承知识点_第2张图片

4.方法重写(方法覆盖)

子类父类定义了同名的函数,子类对象调用时,会执行子类中的函数,就好像父类中的函数被覆盖了一样。这个就叫函数覆盖(函数重写)
要想调用父类中被覆盖的方法,需要用super关键字。
java类的继承知识点_第3张图片
注意:函数覆盖时,必须保证子类中的函数的访问权限要>=父类中函数的访问权限,否则编译报错

java类的继承知识点_第4张图片

5.继承中的构造函数

创建子类时,会先执行父类构造函数,然后执行子类构造函数
子类构造函数第一行默认有一个隐式super(),也就是默认调用父类的无参构造函数
java类的继承知识点_第5张图片

调用父类的有参构造函数
java类的继承知识点_第6张图片
注意:如果父类没有无参构造函数(显式隐式的都没有),那使用子类构造函数时会报错,因为子类构造函数始终默认是隐式调用父类无参构造函数
java类的继承知识点_第7张图片

你可能感兴趣的:(java)