抽象類真的也可以被例項化(Java)

2021-08-08 08:25:23 字數 631 閱讀 1938

面試過程中,遇到這個問題。當時處於懵的狀態,回答抽象類不能被例項化。當時覺得此事必有蹊蹺,查詢了一些資料了解到:

抽象類其實是可以被例項化的,但是它的例項化方式並不是通過普通的new方式來建立物件,而是通過父類的應用來指向子類的例項間接地實現父類的例項化,因為子類在例項化之前,一定會先例項化它的父類。這樣建立了繼承抽象類的子類物件,也就把其父類(抽象類)給例項化了。

注意:介面與抽象類非常類似,但是它不可以被例項化,因為介面壓根沒有建構函式。

下面將通過乙個簡單的demo來展示一下:

首先,定義乙個抽象類b,包含抽象方法play()

public abstract class b 

public abstract void play();

}

然後,定義乙個子類c去繼承類b,並實現其中的抽象方法

public class c extends b

@override

public void play()

public static void main(string args)

}

執行結果如下:

父類已經例項化

c子類已經被例項化

抽象類通過子類被例項化

抽象類其實是可以被例項化的,但是它的例項化方式並不是通過普通的new方式來建立物件,而是通過父類的應用來指向子類的例項間接地實現父類的例項化,因為子類在例項化之前,一定會先例項化它的父類。這樣建立了繼承抽象類的子類物件,也就把其父類 抽象類 給例項化了。注意 介面與抽象類非常類似,但是它不可以被例項...

Java 抽象類能否被例項化問題

廢話不多說 父類fruit public abstract class fruitfruit2 抽象類繼承 fruit類 public abstract class fruit2 extends fruit farm主函式入口 public class farm f.harvest 對於乙個小白來說...

PHP抽象類 無法例項化

類前加 abstract,此類就成為抽象類,無法例項化.舉例 春秋戰國時期,燕零七 飛行器專家,能工巧匠.他寫了乙份圖紙 飛行器製造術 飛行器秘製圖譜 他的孫子問 發動機怎麼造呢?燕零七眼望夕陽 我是造不出來,但我相信後代有人造出來 燕零七的構想,當時的科技造不出來,即這個類只能在圖紙化,無法例項化...