super:
1.super能出现在实例方法和构造方法中;
2.super的语法:“ super. ”、“ super() ”;
3.super不能使用在静态方法中;
4.super. 大部分情况下是可以省略;
5.super() 只能出现在构造方法的第一行,通过当前构造方法去调用“父类”中的构造方法,目的是:创建子类的时候,先初始化父类型特征。
super() 通过子类的构造方法调用父类的构造方法。
重要结论:当第一个构造方法第一行,既没有this()又没有super()的话,默认有一个super();表示通过当前子类的构造方法调用父类的无参数构造方法。所以必须保证父类的无参数构造方法存在。
注意:this()和super()不能共存,他们都是只能出现在构造方法中的第一行。
例子:对以下代码进行解读,同时猜测这个输出顺序应该是?
public class SuperTest02
{
public static void main(String[] args){
new C();
}
}
class A{
public A(){
System.out.println("A的无参数构造");
}
}
class B extends A{
public B(){
System.out.println("B的无参数构造");
}
public B(String name){
System.out.println("B的有参数构造(String)");
}
}
class C extends B{
public C(){
this("zhangsan");
System.out.println("C的无