一依啰、抽象類:含有抽象方法的類叫做抽象類(抽象類中不一定只含有抽象方法丹拯,可以有普通方法和成員變量)历恐,抽象類必須在類前用abstract關(guān)鍵字修飾。因為抽象類中的方法沒有具體實現(xiàn)榆浓,所以抽象類不能創(chuàng)建對象于未。
抽象方法:只有聲明沒有具體實現(xiàn)。如:
由以上的定義可以看出來抽象類就是用來被繼承的陡鹃,對一個父類烘浦,如果它的某個方法在父類中的實現(xiàn)沒有任何實際意義,必須根據(jù)不同的子類來決定不同的實現(xiàn)萍鲸,那么就可將這個類定義為abstract 將方法定義為abstract方法闷叉。? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
?? ? ? 1、抽象類和普通類的區(qū)別:(1)抽象方法的修飾必須為public 或protected脊阴。 (2)抽象類不能創(chuàng)建對象握侧。(3)一個類繼承了抽象類,則子類必須實現(xiàn)父類的抽象方法嘿期,如果沒有實現(xiàn)抽象方法則子類也必須定義為抽象類品擎。? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
?? 二、接口
?接口泛指供別人調(diào)用的方法或者函數(shù)备徐,是對行為(方法的)抽象萄传。? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 接口中可以含有變量和方法,(注:接口中的變量會被隱式轉(zhuǎn)為public static final,方法會被隱式轉(zhuǎn)換為public abstarct 方法坦喘,即:接口中的方法都是抽象方法)所以有人說接口是比抽象類更加抽象的“類”盲再。? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
三、接口和抽象類的區(qū)別
(1)類可以實現(xiàn)多個接口瓣铣。只能繼承一個類(單繼承答朋、多實現(xiàn))(2)抽象類可以提供成員方法實現(xiàn)的細(xì)節(jié),接口中只能存在public abstract 方法(3)抽象中的成員變量可以是各種類型棠笑,接口中只可以是 public static final 類型(4)接口中不可以含有靜態(tài)代碼塊以及靜態(tài)方法梦碗,而 抽象類中可以含有靜態(tài)方法和靜態(tài)代碼塊(4)抽象類之間支持多繼承。? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
注:抽象類是一種模板式設(shè)計蓖救,接口是一種行為規(guī)范洪规。