Java 抽象类可以间接实现实例化,无法直接实例化

抽象类无法直接实例化,

它的实例化方式并不是通过普通的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

猜你喜欢

转载自blog.csdn.net/Cary_1029/article/details/80615422