抽象类无法直接实例化,
它的实例化方式并不是通过普通的new方式来创建对象,而是通过父类的应用来指向子类的实例间接地实现父类的实例化,因为子类在实例化之前,一定会先实例化它的父类。这样创建了继承抽象类的子类对象,也就把其父类(抽象类)给实例化了。
注意:接口与抽象类非常类似,但是它不可以被实例化,因为接口压根没有构造函数。
下面将通过一个简单的Demo来展示一下:
首先,定义一个抽象类B,包含抽象方法play()
public abstract class B {
private String str;
public B(String a){
System.out.println("父类已经实例化");
this.str = a;
System.out.println(str);
}
public abstract void play();
}
然后,定义一个子类C去继承类B,并实现其中的抽象方法
public class C extends B{
public C(String c){
super(c);
System.out.println("子类已经被实例化");
}
@Override
public void play() {
System.out.println("我实现了父类的方法");
}
public static void main(String[] args){
B c = new C("c");
}
}
运行结果如下:
父类已经实例化
c
子类已经被实例化
转载参考:https://blog.csdn.net/when_less_is_more/article/details/78004363