今天被人问得劈头盖脸,回来自己亲自试验一下,感觉还是很爽。下面把代码贴出来。请高手不要笑话我,本人底子差。
输出结果:
default parent class
default sub class
default parent class
sub class A
去掉super(str)的注释的运行结果:
default parent class default sub class parent class A sub class A
代码导读:
代码很简单,不过从这里了解继承的构造方法调用顺序。
SubClass 继承了 ParentClass,父类有两个构造方法,子类也有两个构造方法,和父类的都一样。
我在SubClass(String str){}构造方法里注释了一句代码super(str);这句是调用父类带参数的构造方法时用的。
结论:
1.父类没有无参构造方法,子类也不能有无参构造方法。
2.父类没有无参构造方法,子类在new对象的时候,必须显示调用父类的带参构造方法。
3.子类在new对象的时候,默认情况下,会调用父类的无参构造方法。
4.子类在new对象的时候可显示调用父类的构造方法。
5.呵呵,玩玩而已。挺有意思。