继承 extends
2021-03-04 本文已影响0人
想象之中丶意料之外
继承中成员变量的访问特点
1、父子类继承关系中,成员变量重名时,子类对象访问重名变量的2种方式
- 子类对象直接访问成员变量时:等号左边对象时谁,就优先用谁的成员变量,没有则向上找。
- 间接通过成员方法访问时:方法属于谁,就优先用谁的成员变量,没有则向上找。
2、局部变量、本类成员变量、父类成员变量的使用方式
- 局部变量:直接使用变量名
- 本类成员变量:this.成员变量名
- 父类成员变量:super.成员变量名
继承中,构造方法的访问特点
- 子类构造方法中有一个默认隐含的“super()”调用,所以一定是先调用父类的构造方法,后执行子类构造。
- 子类构造可以通过super关键字来调用父类构造【主要用与调用父类重载构造】
- super的父类构造调用,必须是子类构造方法的第一个语句。不能一个子类构造调用多次super构造
-
总结:子类必须调用父类构造方法,不写则赠送一个super()【无参构造方法】,写了则用写的super调用,super只能有一个,还必须是第一个
super关键字的三种用法
- 在子类中,访问父类的成员变量【super.成员属性】
- 在子类中,访问父类的成员方法【super.方法名()】
- 在子类中,访问父类的构造方法【super()】
this关键字的三种用法
- 在本类中,访问本类的成员变量【this.成员属性】
- 在本类中,访问本类的成员方法【this.方法名()】
- 在本类中,访问本类的另一个构造方法【this()】
a) this(...)调用也必须是构造方法的第一个语句,唯一一个
b) super和this两种构造调用,不能同时使用
Java中继承的三个特点
- 一个类的直接父类只能有唯一一个
- 一个类可以多继承【B extends A , C extends B 所以对与C来说,即是有多级(非直接)父类继承。java最高的多级父类是 java.lang.Object】
- 一个子类的直接父类是唯一的,但是一个父类可以拥有N个子类