继承
1.1 继承概述:
继承是面向对象三大特征之一,可以使子类具有父类的属性和方法,还可以在子类中重新定义,追加属性和方法
继承格式:
- public class Zi extends Fu {}
1.2 继承的好处和弊端:
继承好处:
- 提高代码复用性(多个类相同成员可以放入同一个类中)
- 提高代码维护性(方法代码的修改,只需要修改一处即可)
继承弊端:
- 继承让类和类之间产生关系,类的耦合性增强了,父类发生变化时子类不得不发生变化,削弱子类独立性
(is a)苹果是水果的一种;猫是动物的一种
1.3 继承中变量的访问特点:
在子类方法中访问一个变量:
- 子类局部范围找
- 子类成员范围找
- 父类成员范围找
- 没有就报错(不考虑父亲的父亲)
1.4 super:
- this:代表本类对象引用
- super:代表父类存储空间标识(即父类对象引用)
- 访问成员变量:super.成员变量
- 访问构造方法:super(...)
- 访问成员方法:super.成员方法(...)
1.5 继承中构造方法的访问特点:
子类中所有构造方法默认访问父类无参构造方法
- 子类继承父类的数据,可能使用父类的数据,所以子类初始化之前,一定先完成父类初始化
- 每一个子类构造方法的第一条语句默认是:super()
如果父类中没有无参构造方法
- 通过super显示的调用父类的带参构造方法
- 在父类中自己提供一个无参构造方法(推荐)
1.6 继承中成员方法的访问特点:
通过子类对象访问方法
- 首先在子类成员范围找
- 然后在父类成员范围找
- 找不到就报错
1.7 方法重写:
子类中出现和父类一模一样的方法声明
子类需要父类的功能,而功能主体子类有自己特有的内容
@override:检查重写方法声明是否正确
1.8 方法重写注意事项:
父类中的私有方法子类不能重写
子类重写方法访问权限不能低于父类方法权限(public > 默认权限 > private)
1.9 Java中继承注意事项:
Java中类只支持单继承,不支持多继承
Java中类支持多层继承