9.14 这篇博客将是java中关于继承的学习总结
- 继承性:继承主要解决的问题就是“共性抽取”。共性抽取就是将类的相同部分优化到一个名为父类的大类以便于子类们不同重复定义相同的成员变量和成员方法。
- 继承的格式
在继承的关系中,可以说子类就是一个父类,因为子类可以被当做一个父类看待,例如父类是员工,子类是讲师,那么讲师也就是一个员工关系 is-a;
定义父类的格式>>和普通的类一样定义;
定义子类的格式>> extends 父类名称
- 继承中成员变量的访问特点
在父子类的继承关系当中,如果成员变量重名,则创建子类对象时,访问有两种方式1.直接通过子类对象访问成员变量,等号左边是谁,就优先用谁,没有则向上找2.间接通过成员方法访问成员变量,该方法属于谁,就优先用谁,没有则向上找。
- 区分子类方法中重名的三种
局部变量 直接.成员变量
本类的成员变量 this.成员变量
父类的成员变量 super.成员变量 (创建的对象是谁,就优先用谁,如果没有则向上找)
- 继承中方法的覆盖重写
重写(@override)
在继承关系中,方法的名称一样,参数列表也一样,这样就是子类对父类相同方法的重写。(创建的子类对象,则优先用子类方法)
重写(override)方法名称一样,参数列表也一样(覆盖重写)
重载(overload)方法名称一样,参数列表不一样
注意事项:
1.必须保证子类和父类的方法名称相同,参数列表也相同,在方法的前面写一个(@Override)用来检测是不是有效的覆盖重写,而不是重新创造一个新的方法。(起到安全检测)
2.子类方法的返回值必须小于等于父类方法的返回值范围
Object类是所有类的公共最高父类(祖宗类)
3.子类的权限必须【大于等于】父类方法的权限修饰符
public > protected > (default) > private (default是留空)
-
覆盖重写的应用原则:已经投入使用的类尽量不要进行修改推荐定义一个新的类,来重复利用中的共性内容,并且添加改动的新内容。
- 继承关系中,父子类构造方法的访问特点(子类必须调用父类的构造方法)
1.子类构造方法当中有一个默认隐含的“super()”调用,所以一定是先调用的父类构造方法,后执行的子类构造
2.子类构造可以通过super关键字来调用父类重载构造
3.super的父类构造调用必须是子类构造方法的第一个语句,不能一个子类构造调用多次super构造 -
super关键字是用来访问父类内容的,this关键字是用来访问本类内容的,super与this的两种构造调用不能同时使用
- Java继承的三个特点
1.java语言是但继承的,一个类的直接父类只能有唯一的一个
2.java语言是可以多级继承的,也就是可以有父亲的父亲的父亲。。。
3.一个人父类也可以拥有很多子类,也就是可以生还几胞胎