黑馬程式設計師 抽象類與模板方法設計模式

2021-06-20 12:46:59 字數 1081 閱讀 7587

抽象類

當多個類中出現相同功能,只是功能主體不同,可以向上抽取,這時,只抽取功能定義,而不抽取功能主體。

抽象類的特點:

1. 抽象方法一定在抽象類中;

2. 抽象方法和抽象類都必須用abstract修飾;

3. 抽象類不可以new物件,因為呼叫抽象方法沒有意義;

4. 抽象類中的抽象方法要被呼叫,必須由子類複寫後建立子類例項呼叫;如果子類只複寫了部分抽象方法,那子類還是乙個抽象類。

抽象類和一般類沒有太大的不同,該如何描述事物還是該如何描述事物,只不過出現一些無法定義主體的明確功能,通過抽象方法來表示。

所以,比起一般類,抽象類多了抽象函式且不能被例項化。

q:抽象類中可以不定義抽象方法嘛?

a:可以。作用僅僅是不讓該類建立物件。

來看一下抽象類的使用:模板方法設計模式(定義功能時,功能的一部分是確定的,另一部分不確定,不確定的部分由該類的子類去完成)

考慮如下類:

class gettime

long end = system.currenttimemillis(); system.out.println(" " + (end - start)); }}

gettime()方法測算了**

for(int i = 0; i < 1000; i ++)

的執行時間。但是如果要測算其他**的執行時間,那該要怎麼辦呢?

可以用抽象方法替代被測算**,具體的實現在子類中實現:

abstract class gettime

abstract void testcode();

}class sub extends gettime

}

這樣只需要建立子類例項,呼叫gettime()方法:

class templetedemo

}

黑馬程式設計師 抽象類

asp.net android io開發s net培訓 期待與您交流!抽象類 abstract 當多個類中出現相同功能,但是功能主體不同,這時可以進行向上抽取,這時,只抽取功能定義,不抽取功能主體。抽象類的特點 1.抽象方法一定定義在抽象類中。2.抽象方法和抽象類都必須被abstract關鍵字修飾。...

黑馬程式設計師 抽象類

asp.net unity開發 net培訓 期待與您交流!抽象類當編寫乙個類時,我們往往會為該類定義一些方法,這些方法是用來描述該類的行為方式,那麼這些方法都有具體的方法體。但是有的時候,某個父類只是知道子類應該包含怎麼樣的方法,但是無法準確知道子類如何實現這些方法。抽象方法的定義 通過abstra...

黑馬程式設計師 抽象類 介面

asp.net unity開發 net培訓 期待與您交流!抽象類 abstract 1.抽象方法必須定義在抽象類中。2.抽象方法和抽象類必須被abstract修飾。3.抽象類不可以用new建立物件,因為呼叫抽象方法沒意義。4.抽象類中的方法要被使用必須由子類覆寫其所有的抽象方法後,建立子類物件呼叫,...