class Grandparent
{
public Grandparent()
{ System.out.println("GrandParent Created.");
}
public Grandparent(String string)
{ System.out.println("GrandParent Created.String:"+string);
}
}
class Parent extends Grandparent
{ public Parent()
{ super("Hello.Grandparent.");
System.out.println("Parent Created");
//super("Hello.Grandparent.");
}
}
class Child extends Parent
{
public Child()
{
System.out.println("Child Created");
}
}
public class TestInherists
{
public static void main(String args[])
{ Child c=new Child();
}
}
其结果为:
若把上面绿色注释取消,如下
class Parent extends Grandparent
{
public Parent()
{
System.out.println("Parent Created");
super("Hello.Grandparent.");
}
}
程序报错
原因:通过super调用基类构造方法,必须是子类构造方法中的第一个语句
this 和 super有区别,this用于此类,而super用于父类,若没写super,系统将默认进行super,若写了,则必须放在第一个语句