1. 程式人生 > >Java面向對象之抽象類

Java面向對象之抽象類

方法名 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面向對象之抽象類