日期:2014-05-20  浏览次数:20781 次

构造方法。
public class Test extends SubClass{
Test(){
System.out.println("hello,i'm Test");
}
public static void main(String[] args) {
new Test();
}
}
class SubClass{

SubClass(){
System.out.println("hello,i'm subClass");
}
}
如上,会打印什么。
接着
public class Test extends SubClass{

public static void main(String[] args) {
new Test();
}
}
class SubClass{

SubClass(){
System.out.println("hello,i'm subClass");
}
}
这个会打印什么,不要运行,顺便解释一下原因。谢谢。

------解决方案--------------------
Test(){
System.out.println("hello,i'm Test");
}
相当于
Test(){
super();
System.out.println("hello,i'm Test");
}
这样就很明白了吧
------解决方案--------------------
其它讨论咱就不介入了,但有个东西比较碍眼,建议把你当前例子里面的:
SubClass
这个类名,修改为:
BaseClass 或 ParentClass


这样看起来眼顺些,呵呵~~~
------解决方案--------------------
构造子类的对象之前必须构造父类对象,所以说不管怎么样,子类都都会调用父类中的一个构造构造方法.如果子类构造方法没有显式调用父类中的构造方法或另一个子类构造方法,则自动调用无参的父类构造方法
------解决方案--------------------
子类可以调用父类的构造方法,但是不能够继承父类的构造方法。所以第二种调用了父类方法以后输出一次。