1)子父类中的成员关系
A:成员变量
在子类方法中使用一个变量时:
首先,在方法的局部变量中找这个变量,有则使用。
否则,在本类中找成员变量,有则使用。
否则,在父类中找成员变量,有则使用。
否则,报错。
B:成员方法
用子类对象使用一个方法时。
首先,在子类中找这个方法,有则使用。
否则,在父类中找这个方法,有则使用。
否则,报错。
当子父类中的方法名相同时的现象被称为重写。
重写和重载的区别?
重载:在同一类中。方法名相同,参数列表不同。
重写:在不同类中(子父类中)。
方法声明相同(返回类型,方法名,参数列表)。
重载可以改变返回类型。
重写需要注意:
**子类方法的访问权限要大于等于父类方法的访问权限。
**静态只能重写静态。一般不会出现。
C:构造方法
**子类的实例化过程
***子类创建对象时,会先去创建父类的对象。
默认是去调用父类的无参构造方法。
***子类构造方法中,第一行默认是super()
***为什么子类中第一行会默认有super()
因为他继承父类的成员使用,使用前这些成员必须初始化,
而他们是父类的成员,所以,必须通过父类进行初始化。
所以,会先创建一个父类的对象。
**当父类没有无参构造方法时
必须使用this或者super调用其他的构造方法。
2)this和super的区别
this:代表本类对象的引用。
super:代表父类的存储空间。
用法很相似。
你既然是用继承 就应该知道他们之间谁调用谁,是么时候调用, |