帮忙解释下这段代码 class A { A() { System.out.println("Inside A's constructor."); } } // 创建A的以个子类. class B extends A { B() { System.out.println("Inside B's constructor."); } } // 创建另一个子类继承B. class C extends B { C() { System.out.println("Inside C's constructor."); } } class CallingCons { public static void main(String args[]) { C c = new C(); } } 子类与父类之间构造函数的调用是怎么一回事,请高手解释下!
------解决方案-------------------- 首先你创建了类A, 再创建类B继承类A, 再创建类C继承类B, 然后在CallingCons类里实例化类C, 因为类C继承了类B里的所有方法与父类的所有方法, 所以会打印出类A,类B,类C里的所有方法。 假如子类从写了父类的方法,想要调用父类被隐藏的方法就用Super。
------解决方案-------------------- 若子类没有定义自己的构造函数,则调用父类的构造函数。若该父类也未定义构造函数,则调用父类的父类的构造函数。 以此类推。 你可以依次把各类的构造函数用注释符//屏蔽掉,然后测试一下结果。 例子: class a{ a(){System.out.println("In a\n\n");} } class b extends a{ b(){System.out.println("In b\n\n");} } class c extends b{ c(){System.out.println("In c\n\n");} } public class test1 { public static void main(String a[]) { a a1=new a(); System.out.println("************************************"); b b1=new b(); System.out.println("************************************"); c c1=new c(); } }
------解决方案--------------------