例如在生活中我們都把狗和貓歸為動物著一類中,但當只說動物時,我們是不知道是貓還是狗還是其他的。所以動物就是所謂的抽象類,貓和狗則是具體的類了。因此在Java中,一個沒有方法體的方法應該定義為抽象類,而類別中有抽象方法,則必須為抽象類別。
抽象類別與抽象方法必須用abstract關鍵字進行修飾。
抽象類別不一定會有抽象方法,而有抽象方法的類別一定是抽象類別。
抽象類別不能實例化,若需實例化,參考多型的形式,透過子類別來進行實例化。
繼承了抽象類別的子類,則需要重寫抽象類別裡面的所有抽象方法,要嘛就是抽象類別才行。
成員變數:可以是變數或常數。
建構方法:有建構方法,但是不能實例化,則需要透過多型子類別來進行;其中用處是為子類別存取父類別來進行資料初始化。
成員方法:可以是抽象類別:限定 子類別必須完成的某些行為;也可以為非抽象類,可以提高程式碼的複用性。
介面是一種公共的規範標準,是表示一個類別所需要的附加條件,所以只需要符合規範標準,都可以運用。 Java中的介面主要體現在對行為的抽象化。
需要用關鍵字interface來修飾。
類別的實作介面需要用implements來表示
介面不能實例化,若要實例化,則參考多型的形式來進行實例化,稱為介面多態性。因此多態的形式主要有:具體類別的多態,抽像多態,介面多態。
介面的實作類別:要嘛重寫介面裡面的抽象方法,要嘛是抽象類別。
1.成員變數:只能是常數,預設由'public static final'來修飾。
2,建構方法:介面沒有建構方法,因為介面主要是對於行為進行抽象,沒有具體的存在。
注意事項:一個類別沒有父類別則預設繼承Object類別。
3.成員方法:
#抽象方法:介面預設的方法為抽象方法。預設為public static abstract來進行修飾。
預設方法:預設方法是在部分實作類別需要加入的方法時所用到的方法,是需要在介面裡面用defaul修飾,實作類別裡可以不用重寫,但重寫時是需要刪除default。
靜態方法:靜態方法是只能在介面中去添加,不能被實作類別去調用,只能被介面名調用並被static修飾。
私有方法:私有方法主要在介面裡面進行使用,有private關鍵字進行修飾,透過將相同的程式碼片段寫在私有方法裡面,提高了程式碼的複用性和簡單性,靜態的私有方法只能用靜態來進行修飾,非靜態的可以有非靜態和靜態方法都能修飾。
抽象類別主要是對於事物的抽象,介面主要是對於行為的抽象。
以上是java中的抽象類別和介面如何定義使用的詳細內容。更多資訊請關注PHP中文網其他相關文章!