继承的问题
这个程序:
public class ConstructorTest
{
public static void main(String[] args)
{
C c= new C("hello");
}
}
class A
{
public A()
{
System.out.println("this is A");
}
}
class B extends A
{
public B(String str)
{
System.out.println("this is B");
}
}
class C extends B
{
public C(String str)
{
super(str);
System.out.println("this is C");
}
}
书上说C进行实例化的时候,先对A、B进行实例化。又说因为B中没有默认构造函数,所以要加 super(str);
说是这表示调用B的有参构造函数。
我不明白的是“A中是无参构造函数,由于C中多了 super(str);
,所以无法调用A中的无参构造函数,所以无法对A进行实例化。”
为什么是错误的说法。