文章目录

  • 定义
  • 优点
  • 格式
  • 继承的特点
  • 成员变量
  • 成员方法
  • 构造方法
  • super和this


定义

子类使用 extends 关键字继承父类的属性和行为,使子类对象具有与父类相同的属性和行为。子类可以直接访问父类中非私有的属性和行为。如果要访问父类的私有成员变量,则需要使用对应的getXxx和setXxx方法。

优点

  1. 提高代码的复用性;
  2. 类与类之间产生了关系,是多态的前提。

格式

class 父类 {
	//
}

class 子类 extends 父类 {
	//
}

继承的特点

  1. Java只支持单继承,不支持多继承;
  2. Java支持多层继承(继承体系);
  3. 子类和父类是一种相对的概念。

一个子类只有一个直接父类,但一个父类可以有多个子类。

成员变量

  • 成员变量不重名

直接访问,没有影响。

  • 成员变量重名
  1. 直接通过子类对象访问成员变量
  • 等号左边是谁,就优先使用谁,没有则向上找
  1. 间接通过成员方法访问成员变量
  • 该方法属于谁,就优先用谁,没有则向上找
  1. 使用 super 关键字访问父类成员变量
  • 局部变量:直接写变量名
  • 本类成员变量:this.变量名
  • 父类成员变量:super.变量名

成员方法

  • 成员方法不重名

直接调用,没有影响。

  • 成员方法重名

创建(new)的对象是谁,就用谁的方法。如果没有,则向上找父类。
【注意】
无论是成员变量还是成员方法,如果没有,都是向上找父类,不会向下找子类。

构造方法

  1. 子类无法继承父类的构造;
  2. 构造方法的作用是初始化成员变量。所以在子类的初始化过程中,必须先执行父类的初始化动作;
  3. 子类构造方法中默认的super()调用父类的无参构造;
  4. 可以使用super关键字,子类构造调用父类的重载构造;
  5. super父类构造的调用,必须是子类构造方法的第一个语句。只有子类构造才能调用父类构造。

super和this

super:代表父类的存储空间标识(父类引用)
this:当前对象的应用

  • super关键字的3中用法
  1. 在子类成员方法中,调用父类的成员方法;
  2. 在子类成员方法中,调用父类成员变量;
  3. 在子类构造方法中,调用父类构造方法。
  • this关键字的3中用法
    4. 在本类成员方法中,调用本类成员变量;
    4. 在本类成员方法中,调用本类的另一个成员方法;
    4. 在本类构造方法中,访问本类的另一个构造方法。

【注意】

  1. this(…)调用必须是构造方法的第一个语句;
  2. super和this两种构造调用不能同时使用。