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

2021-08-21 12:07:33 字數 905 閱讀 6656

為什麼要使用抽象類? 有什麼好處?

答案:1  現實中一些父類中的方法沒必要寫  各個子類中的方法會有所不同 所以沒必要在父類中寫

2  看被人**時候會注意這是抽象方法 會有個提示作用

3 當看到乙個類是抽象的,要關心他的抽象方法, 因為他的子類一定會重寫他,然後去找抽象類的引用,,會有多型性的體現

4  物件導向複雜但是是為了方便解決問題 

5  含有抽象方法的類必須定義為抽象類

6 不能使用 abstract修飾屬相或者區域性變數

7 抽象類中可以同時含有抽象方法和非抽象方法

8 在抽象類裡定義的抽象方法只有方法頭沒有方法體,但這個抽象方法如果被多個子類所呼叫的時候,各子類可以根據各自需要例項化出不同的物件 並且重新定義不同的方法體上去,從而通過它來實現多型

9  抽象類可以有方法體 就是抽象工廠

10  抽象類中定義抽象方法不能有方法體(未實現)

11  demo 

抽象類是在介面和實體類之間的乙個橋梁

例如做乙個介面叫做飛行flyanimalaction,裡面定義乙個方法叫做flying,再定義乙個方法叫做eat

做乙個類叫做蚊子實現介面,蚊子要實現flying方法,實現自己的eat方法

做乙個類叫做蒼蠅實現介面,蒼蠅也要實現flying方法,實現自己的eat方法

你發現所有會飛的動物都要實現這個介面,很麻煩,不如

做乙個抽象類flyanimal,然後實現上面的介面

在裡面實現flying這個方法,因為大部分的飛行動作是一樣的,而eat方法則繼續寫成抽象方法,因為大部分的動物吃東西是不一樣的

下面你再寫蚊子類就簡單了,可以直接繼承這個抽象類,然後實現自己的吃方法就行了

而且蒼蠅類的製作也是一樣,這個時候抽象類的功能就顯示出來了,當然抽象類的功能遠遠不是這些,只是初期理解到這裡就夠了。

學習 為什麼要使用抽象類

abstract描述的類即是抽象類,描述的方法即是抽象方法。被此關鍵字描述的類,不能直接例項化,需要匿名。如果乙個類裡面包含抽象方法,則該類必須宣告為抽象類。抽象方法沒有實現,子類如果不是抽象類,則必須實現父類的抽象方法。以上差不多就是抽象類的概念和注意事項。之前一直的理解就是,抽象類和介面的作用類...

為什麼使用抽象類,什麼時候使用抽象類

假設有2個類,乙個類是主力球員,乙個類是替補球員。public class normalplayerpublic string firstnamepublic string lastnamepublic decimal weeksalarypublic string getfullname publ...

C 為什麼設計抽象類?

網上也有許多介紹,但我總覺得不能一針見血,根據自己工作實際中用到的,才知道有些時候真的是需要抽象類 先說一種場景 a設計了一項功能他把此功能封裝成乙個類,以類的方式提供,他要把這項功能提供給b c,我們理所當然的想到他會把原始碼或者編譯成的 庫 件給bc。現在在修改一下這個場景 如果 abc做的是同...