文章目录
- 定义
- 优点
- 格式
- 继承的特点
- 成员变量
- 成员方法
- 构造方法
- super和this
定义
子类使用 extends
关键字继承父类的属性和行为,使子类对象具有与父类相同的属性和行为。子类可以直接访问父类中非私有的属性和行为。如果要访问父类的私有成员变量,则需要使用对应的getXxx和setXxx方法。
优点
- 提高代码的复用性;
- 类与类之间产生了关系,是多态的前提。
格式
class 父类 {
//
}
class 子类 extends 父类 {
//
}
继承的特点
- Java只支持单继承,不支持多继承;
- Java支持多层继承(继承体系);
- 子类和父类是一种相对的概念。
一个子类只有一个直接父类,但一个父类可以有多个子类。
成员变量
- 成员变量不重名
直接访问,没有影响。
- 成员变量重名
- 直接通过子类对象访问成员变量
- 等号左边是谁,就优先使用谁,没有则向上找
- 间接通过成员方法访问成员变量
- 该方法属于谁,就优先用谁,没有则向上找
- 使用
super
关键字访问父类成员变量
- 局部变量:直接写变量名
- 本类成员变量:this.变量名
- 父类成员变量:super.变量名
成员方法
- 成员方法不重名
直接调用,没有影响。
- 成员方法重名
创建(new)的对象是谁,就用谁的方法。如果没有,则向上找父类。
【注意】
无论是成员变量还是成员方法,如果没有,都是向上找父类,不会向下找子类。
构造方法
- 子类无法继承父类的构造;
- 构造方法的作用是初始化成员变量。所以在子类的初始化过程中,必须先执行父类的初始化动作;
- 子类构造方法中默认的super()调用父类的无参构造;
- 可以使用super关键字,子类构造调用父类的重载构造;
- super父类构造的调用,必须是子类构造方法的第一个语句。只有子类构造才能调用父类构造。
super和this
super:代表父类的存储空间标识(父类引用)
this:当前对象的应用
- super关键字的3中用法
- 在子类成员方法中,调用父类的成员方法;
- 在子类成员方法中,调用父类成员变量;
- 在子类构造方法中,调用父类构造方法。
- this关键字的3中用法
4. 在本类成员方法中,调用本类成员变量;
4. 在本类成员方法中,调用本类的另一个成员方法;
4. 在本类构造方法中,访问本类的另一个构造方法。
【注意】
- this(…)调用必须是构造方法的第一个语句;
- super和this两种构造调用不能同时使用。