一、继承的概述
通俗讲多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为,只要继承那个类即可。
二、继承的格式
class AA {
}
class BB extends AA{
}
//通过extends关键字可以实现类与类的继承 AA称之为父类单独的这个类称为父类,基类或者超类, BB称为子类,这多个类可以称为子类或者派生类
1.继承的好处
- 提高了代码复用性
- 提高了代码的维护性
- 让类与类产生了耦合,是具备多态的前提
2.继承的弊端
- 类的耦合性增强了,与开发原则低内聚高耦合相违背。
三、Java中继承的特点
- Java只支持单继承,不支持多继承,有些语言是支持多继承。
- Java支持多层继承(继承体系)。列如
class AA {}
class BB extends AA {}
class CC extends BB {}
class DD extends CC {}
四、继承的注意事项
思想:讲多个子类的共性向上抽取到父类中,实现代码的复用性和易于维护性质
继承的注意事项
- 子类只能继承父类所有非私有的成员(成员方法和成员变量)。
- 子类不能继承父类的构造方法,但是可以通过super(待会儿讲)关键字去访问父类构造方法。
- 不要为了部分功能而去继承
五、继承中成员变量的关系
- 子类中的成员变量和父类中的成员变量名称不一样。
- 子类中的成员变量和父类中的成员变量名称一样,在子类中访问一个变量的查找顺序(“就近原则”)。
a: 在子类的方法的局部范围找,有就使用
b: 在子类的成员范围找,有就使用
c: 在父类的成员范围找,有就使用
d:如果还找不到,就报错
六 、关键字 this 和 super 的区别
this super区别:
this 代表的是本类对象的引用
super代表的是父类存储空间的标识(可以理解成父类的引用,可以操作父类的成员)
this和super的使用:
调用成员变量
this.成员变量 调用本类的成员变量
super.成员变量 调用父类的成员变量
调用构造方法(有参和无参)
this(…) 调用本类的构造方法
super(…) 调用父类的构造方法
调用成员方法
this.成员方法 调用本类的成员方法
super.成员方法 调用父类的成员方法