[size=12px]在继承中的构造方法中有一条规则:就是子类在构造过程中必须调用父类的构造方法:但是我今天写了一个小程序是验证此规则,但是这条规则在我这个小程序中失效了,也不知是我的程序写错了,还是这个规则不适应些程序呢?请高手指点[/size]下面是我写的程序:
class TestA{
/*TestA(){
System.out.println("TestA");
}*/
void call(){
System.out.println("you call me");
}
}public class Test extends TestA {
Test(){
System.out.println("a test");
}
public static void main(String[] args) {
Test t=new Test();
//t.call();
}
}我把上面TestA的构造方法注释了,可还能够运行,按规则来说是要出错的啊,

解决方案 »

  1.   


    class TestA {
        /*
         * TestA(){ System.out.println("TestA"); }
         */
        // 如果加上一个显示声明的有参构造函数,则子类也必须显示调用这个构造函数
        public TestA(String param) {
            // TODO Auto-generated constructor stub
        }    void call() {
            System.out.println("you call me");
        }
    }public class Test extends TestA {
        Test(String param) {
            super(param);// 当有参时,如果不写这条语句就会报错
            System.out.println("a test");
        }    public static void main(String[] args) {
            Test t = new Test("");
            // t.call();
        }
    }