抽象方法必須在子類中實現,這句話對嗎

2021-04-18 09:01:48 字數 1316 閱讀 8099

1樓:馮老師(必果學院

不正確包含抽象方法的類叫做抽象類。而抽象方法是類中指那些僅宣告,並不做回實現的方法。

這答些方法可以作為一個通用的介面,規範子類的實現。

但是抽象類的子類並不一定就是實體類,也可以是另一個抽象類。在這種情況下,作為抽象類的子類,也可以不實現某些抽象方法,而是等待其子類去實現。

不過對於繼承了抽象類的實體類,則必須實現所有的抽象方法,否則無法用該類宣告物件——這在語法上是不允許的。

抽象方法往往被用做介面。在設計的時候,這種方法常常被用於那些需要和外部模組互動的類。這樣可以遮蔽外部對實際工作類細節的瞭解,避免引入過多的可能導致bug的因素;另一方面,這樣可以方便外部和內部互動,雙方只要遵循介面的定義互動即可,減少內部對外部的依賴。

2樓:匿名使用者

不完全對。首先,抽象類必定包含抽象方法,而作為一個子類如果繼承自回抽象類,那麼

答如果要實現該類的物件,那麼久必須對抽象類中的抽象方法進行實現,而如果只是想再寫一個抽象類,這不需要對父類中的抽象方法進行實現

3樓:匿名使用者

從兩個層面來回答:

抄1. 某一個類如果定義了某個方法是抽象方法,則在本類中不能有任何實現,必須在子類中實現才行。(這裡的子類,是廣義的子類。)

2. 某一個類如果定義了某個方法是抽象方法,其子類並非一定要實現。不想實現父類中的抽象方法的話,子類同樣定義成抽象類就是了。(這裡的父類,也是廣義的父類。)

計算機程式語言,並不是嚴格的科學,沒有嚴格的、嚴謹的定義,出這種摳字眼的判斷題,沒太大意思。

如果在抽象類中定義私有變數,子類繼承抽象類後,子類中的方法需要訪問抽象類中定義的私有變數怎麼辦?

4樓:匿名使用者

私有的子類是不可以用的。但是如果想訪問父類的私有變數或者改變私有變數,可以在超類中定義兩個方法get() set()

5樓:金城杞人

在抽象父類裡定義兩個setter/getter方法。

抽象類不是必須有抽象方法。

6樓:匿名使用者

定義私有變數主要是防new的 你把類定為靜態,或者把變數定義為靜態,等都可以訪問

7樓:匿名使用者

set,get來獲取

8樓:火虹澀

private訪問修飾符只有內部類才能夠呼叫,子類是不可以的。如果想要在子類呼叫,請使用protected訪問修飾符。

9樓:29小和尚

可以直接訪問啊,或者用super

java中抽象類的構造方法抽象麼

抽象類可以有構造方法,只是不能直接建立抽象類的例項物件而已。在繼承了抽象類的子類中通過super 引數列表 呼叫抽象類中的構造方法 示例 如下 抽象類和抽象方法什麼關係?抽象類中可能有抽象方法,也可能沒有抽象方法。那位說,就跟沒說一樣,那抽象類和抽象方法都叫抽象,他們必定有關係,那關係是什麼呢?如果...

java中什麼是抽象類和抽象方法?建立有何作用

java抽象類的作用 1 通過繼承它實現多型,後期繫結,可以為將來要實現的東西做好介面,實現重用性。2 介面就是更純粹的抽象類。java中抽象類的構造方法抽象麼 抽象類可以有構造方法,只是不能直接建立抽象類的例項物件而已。在繼承了抽象類的子類中通過super 引數列表 呼叫抽象類中的構造方法 示例 ...

c 語言中類中的靜態資料成員為什麼必須在類體外初始化

可以通過以下幾個例子更形象的說明這個問題 test.cpp include class a int main 編譯以上 會出現 對 a a 未定義的引用 錯誤。這是因為靜態成員變數a未定義,也就是還沒有分配記憶體,顯然是不可以訪問的。再看如下例子 test.cpp include class a i...