下面的文章提供了 Java 中抽象類別的概述。抽象類別與 Java 中的任何其他普通類別一樣。抽象類別和常規類別之間的顯著差異是建立抽象類,我們必須使用「ABSTRACT」關鍵字。它是類別實作的分離。他們用來定義其子類別的非常常見的特徵。這種類型的類別稱為抽象類別。最重要的是,我們無法建立抽象類別的物件。
開始您的免費軟體開發課程
網頁開發、程式語言、軟體測試及其他
抽象類別可以包含抽象方法和非抽象方法。但是,它們不能包含子類別只能提供的抽象方法的主體。如果子類別沒有實作抽象方法,那麼我們必須明確地將其設為抽象方法。換句話說,如果一個類別包含抽象方法,它必須將自己定義為 ABSTRACT。我們可以使用抽象類別將多個Java類別分組,優化程式碼,使程式碼更具可讀性,減少冗餘。它還為未來的課程提供了模板。
抽象類別的語法如下:
下面給了以下範例:
Human.java
package com.cont.article; public abstract class Human { public abstract void whatTheylike(); public void doTheysleep() { System.out.println("Yes every human require sleep."); } }
Human1.java
package com.cont.article; public class Human1 extends Human { @Override public void whatTheylike() { System.out.println("we like to have icecream."); } }
Human2.java
package com.cont.article; public class Human2 extends Human { @Override public void whatTheylike() { System.out.println("we like to have coffee."); } }
TestHuman.java
package com.cont.article; public class TestHuman { public static void main(String[] args) { Human human1 = new Human1(); human1.whatTheylike(); Human human2 = new Human2(); human2.whatTheylike(); human1.doTheysleep(); human2.doTheysleep(); } }
輸出:
在上面的例子中,HUMAN 是一個抽象類,它定義了人類的共同需求、好惡。人有不同的類型,有不同的好惡。所以每個人都可以提供他們喜歡的具體實現。這僅針對他們。
抽象類別的主要優點是我們可以根據需求具體實現方法,減少冗餘,增加程式碼的可讀性,隱藏方法的實現,提供部分抽象。
我們可以再舉一個例子來理解何時使用抽象類別。
假設我們有一個 Animal 類別。地球上有各種各樣的動物,它們在某些或主要意義上都彼此不同。儘管如此,它將包含所有共同特徵。
現在,這個 Animal 類別不能為每個 Animal 提供特定的方法。所以透過抽象類別的概念,我們就可以實現這個功能,不需要多餘的程式碼。
所有動物都有不同種類的聲音、習慣等。例如狗、貓、大象、零食都有不同的聲音。因此,為此,我們可以在父類別中擁有一個通用方法,所有其他子類別或子類別都可以透過該方法提供其特定的實作。
在父類,即 Animal 中,我們有一個通用的抽象方法,稱為它們的 Sound ()。所以每個子類別都需要重寫這個方法並提供其具體的實作。
以下是抽象類別和介面的差別:
抽象類別用於提供部分抽象。抽象類別不能使用 NEW 關鍵字實例化。抽象方法沒有主體,並且總是以分號 (;) 結尾。抽象類別包含抽象方法和非抽象方法。抽象超類別的子類別需要實作所有抽象方法;如果它沒有提供,那麼它必須將自己聲明為抽象類別。即使超類別是具體的,子類別也可以是抽象的。非抽象類別不能包含抽象方法。此外,抽象方法是非靜態的。因此,抽象類別也有抽象方法和具體方法,因此它們不能提供100%的抽象。這是一個向最終用戶隱藏複雜邏輯並僅向他們顯示服務的過程。
另一方面,即使其超類別是具體的,子類別也可以是抽象的,並且也可以用作資料類型。抽象類別可以具有靜態欄位和靜態方法。您可以將這些靜態成員與類別參考一起使用。
以上是Java中的抽象類別的詳細內容。更多資訊請關注PHP中文網其他相關文章!