抽象類
當多個類中出現相同功能,只是功能主體不同,可以向上抽取,這時,只抽取功能定義,而不抽取功能主體。
抽象類的特點:
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.抽象類中的方法要被使用必須由子類覆寫其所有的抽象方法後,建立子類物件呼叫,...