抽象類為什麼不能直接建立物件?

2021-10-08 02:45:45 字數 529 閱讀 8747

1.子類更具體,父類更抽象,直接建立父類物件本身沒有意義。

2.如果建立的是父類物件再呼叫方法的時候,呼叫的父類中的方法,而非子類的方法,它違背了多型的這種思想和設計

3.因為父類引用指向子類物件時,呼叫的方法是子類重寫的方法,一般父類中的描述不夠具體,並不是說抽象類的構造方法沒有意義,那麼在建立子類物件時需要先呼叫父類的構造方法。

4.抽象類不能直接例項化,並且對抽象類使用 new 運算子會導致編譯時錯誤。雖然一些變數和值在編譯時的型別可以是抽象的,但是這樣的變數和值必須或者為 null,或者含有對非抽象類的例項的引用(此非抽象類是從抽象類派生的)

可以間接

抽象類可以宣告物件,但是不能使用自身的構造方法建立物件,但是可以使用子類的構造方法進行建立。

public abstract class a{}

public class b extends a{}

a a = new b();

抽象類為什麼不能建立物件?

目錄 抽象模擬較區別 建立物件 在物件導向的概念中,所有的物件都是通過類來描繪的,但是反過來,並不是所有的類都是用來描繪物件的,如果乙個類中沒有包含足夠的資訊來描繪乙個具體的物件,這樣的類就是抽象類。抽象類往往用來表徵對問題領域進行分析 設計中得出的抽象概念,是對一系列看上去不同,但是本質上相同的具...

抽象類為什麼不能例項化(new)

抽象類為什麼不能例項化 new 答案是 規定。第一點 回歸問題最初,我們為什麼要例項化?我們先逆向思維來考慮,從物件導向的思想來看 我們需要完成實現乙個功能,而功能中的方法,是由物件來呼叫的,因此我們需要物件,因此我們需要例項化。那麼回歸本問題,什麼是抽象類?抽象 就是不具體的意思。類是對物件的具體...

抽象類定義 為什麼要使用抽象類

為什麼要使用抽象類?有什麼好處?答案 1 現實中一些父類中的方法沒必要寫 各個子類中的方法會有所不同 所以沒必要在父類中寫 2 看被人 時候會注意這是抽象方法 會有個提示作用 3 當看到乙個類是抽象的,要關心他的抽象方法,因為他的子類一定會重寫他,然後去找抽象類的引用,會有多型性的體現 4 物件導向...