子类继承父类时一定会调用父类的构造方法,一定的!
有些时候你会发现父类子类构造方法不一样导致编译不通过,这是因为子类构造方法没有和父类的构造方法一致,解决办法是用super关键字。
在子类的构造方法中显示地调用父类构造方法-super。
再说一下this和super的用法。
this的用法分三种:
1.普通的直接引用
2.形参与成员名字重名,用this来区分
3.引用构造函数。比如一个类中有多个构造函数,而其他构造函数可以通过this引用另一个构造函数。
super也有三种用法:
1.普通的直接引用
与this类似,super相当于是指向当前对象的父类,这样就可以用super.xxx来引用父类的成员。
2.子类中的成员变量或方法与父类中的成员变量或方法同名
3.引用构造函数。注意,子类构造方法用super时super一定要在第一行,否则报错。
父类=new 子类
表示将子类向上转型为父类,所以对象只能调用父类中存在的public和protected修饰的成员,以及default类型成员;但是如果被调用的函数被子类覆写,就调用覆写后的函数