[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的构造方法注释了,可还能够运行,按规则来说是要出错的啊,
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的构造方法注释了,可还能够运行,按规则来说是要出错的啊,
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();
}
}