抽象类有构造函数吗
继然抽象类不能够被实例化,那它肯定没有构造器
于是,写了一个测试类,源码如下:
abstract
class
Test
... {
int posInt;
Test(int posInt)
...{
this.posInt=posInt;
System.out.println("Test() posInt="+posInt);
}
}
class Test2 extends Test
... {
Test2()
...{
super(1);
System.out.println("Test2()");
}
}
public class AbstractTest
... {
public static void main(String [] args)
...{
//Test是抽象的,无法对其进行实例化
Test x = new Test2();
}
}
... {
int posInt;
Test(int posInt)
...{
this.posInt=posInt;
System.out.println("Test() posInt="+posInt);
}
}
class Test2 extends Test
... {
Test2()
...{
super(1);
System.out.println("Test2()");
}
}
public class AbstractTest
... {
public static void main(String [] args)
...{
//Test是抽象的,无法对其进行实例化
Test x = new Test2();
}
}
令人惊讶的是文件能够通过编译,并且还能正常运行,运行结果如下:
Test() posInt=1
Test2()
事实证明抽象类是有构造器的
不能凭主观判断就下定结论
接口也有构造器!