Java面向對象之抽象類
阿新 • • 發佈:2019-01-21
方法名 trac bst nbsp 值類型 父類 主任 str size
內容:
1、抽象類的產生
2、抽象類和抽象方法的定義
3、抽象類和抽象方法的使用
4、抽象類常見疑惑
1、抽象類的產生
當編寫一個類時,我們往往會為該類定義一些方法,這些方法是用來描述該類的功能具體實現方式,那麽這些方法都有具體的方法體
但是有的時候,某個父類只是知道子類應該包含怎麽樣的方法,但是無法準確知道子類如何實現這些方法。
比如一個圖形類應該有一個求周長的方法,但是不同的圖形求周長的算法不一樣。那該怎麽辦呢?
再比如:動物應該有吃飯的方法,貓,狗,豬.... 那麽在他們的父類中 這個吃方法應該怎麽定義?
分析事物時,發現了共性內容,就出現向上抽取。會有這樣一種特殊情況,就是方法功能聲明相同,但方法功能主體不同。
那麽這時也可以抽取,但只抽取方法聲明,不抽取方法主體。那麽此方法就是一個抽象方法。如:
- 描述講師的行為:工作。
- 描述助教的行為:工作。
- 描述班主任的行為:工作。
講師、助教、班主任之間有共性,可以進行向上抽取。
抽取它們的所屬共性類型:員工。
由於講師、助教、班主任都具有工作功能,但是他們具體工作內容卻不一樣。這時在描述員工時,發現了
有些功能不能夠具體描述,那麽,這些不具體的功能,需要在類中標識出來,通過java中的關鍵字abstract(抽象)修飾
當定義了抽象方法的類也必須被abstract關鍵字修飾,被abstract關鍵字修飾的類是抽象類
2、抽象類和抽象方法的定義
抽象類和抽象方法的格式:
1 // 抽象方法定義的格式: 2 public abstract 返回值類型 方法名(參數); 3 // 抽象類定義的格式: 4 abstract class 類名 { 5 }
3、抽象類和抽象方法的使用
4、抽象類常見疑惑
Java面向對象之抽象類