以前一直以为只要调用了构造方法就实例化了对象,其实不然,在思考继承和抽象的时候发现,抽象类是可以有构造方法的,但是不能实例化,一个抽象类的子类实例化过程中是调用了父类的构造方法的,但是父类没有实例化:
abstract class A1 {
A1(){
System.out.println("A1");
}
public abstract void show();
}
class A2 extends A1{
A2(){
System.out.println("A2构造方法");
}
public void show(){
System.out.println("A2.show方法");;
}
这里new A1();是错误的,无法通过编译;
但是new A2();结果:
A1构造方法
A2构造方法
|
|