继承
概念: 子类拥有父类的所有非私有信息
extends
public class Zi extends Fu{}
子类和父类就由extends 建立起了父子关系
Zi
method
Fu
show
操作步骤:
1.new Fu
调show
2.new Zi
调method
3.zi 调用show(原因是你还没有书写格式语法extends ) 失败
4.添加上了extends 继承
zi 调用show
Person(人)
name age gender
speak sout("說人话")
Student
// speak sout("学生话")
Teacher
// speak sout("老师话")
Emp(员工)
继承的特点:
子类有,父类有
找子类
子类没有,父类有
找父类
子类没有,父类没有
报错
变量:
先找局部变量
如果局部变量不存在,找成员变量
如果成员变量也不存在,找父类
如果你想直接去找成员变量: this.变量
如果你想直接去找父类 : super.变量
继承的好处:1.继承可以提高代码的复用性
2.提高了代码的维护性
产生弊端: 耦合性增强,独立性降低
###this和super
this 和super 3个使用的情况
1.成员变量 this -->找成员变量 super :找父类
2.成员方法 this -->找成员方法 super :找父类
3.构造方法
每个构造方法默认都会在第一行有一个隐式的super() --> 调用父类的无参构造方法
思考:为什么要调用父类的构造方法
回顾了基础知识
如果有了有参构造-->无参构造就不存在了
this()调本类初始化方法
super() 调父类中的无参构造方法
无论怎么调用,切记:一定需要对父类进行直接或者间接的初始化
直接:super
间接:通过this() -->找其他子类构造方法再通过其他子类构造方法去找父类进行初始化 |
|