java基礎(抽象類和抽象方法)

1.抽象類

  • 由來:利用抽象類為了更好的對類進行分類。如同不同的具體植物有不同的名字,但都可以統(tǒng)稱為植物,“植物”這個抽象的詞對所有具體植物進行了歸納。
    java用來模擬現實世界,所有也存在抽象類。
  • 抽象類通常用來作為一個類族的若干頂層類,用最底層的類表示現實中具體的事物,用最頂層的類表示該類族事物所具有的共性。
  • 抽象類除了不能實例化對象之外,類的其它功能依然存在,成員變量、成員方法和構造方法的訪問方式和普通類一樣。
  • 由于抽象類不能實例化對象,所以抽象類必須被繼承,才能被使用。
  • 在Java中抽象類表示的是一種繼承關系,一個類只能繼承一個抽象類,而一個類卻可以實現多個接口。

2.抽象方法

  • 定義方法時,只有方法頭,沒有方法體,這樣的方法稱為抽象方法。
  • 凡是沒有方法體的方法都必須用abstract關鍵字聲明為抽象方法。
  • 含有抽象方法的類都必須聲明為抽象類。
  • 抽象類不一定有抽象方法,有抽象方法一定是抽象類。
  • 子類如果沒有把抽象類的所有抽象方法具體實現,則子類也必須聲明為抽象類。
abstract class A //抽象類
{
    abstract void f(); //抽象方法
}

abstract class B extends A 
{
    
}
public class Test 
{
    public static void main(String[] args)
    {
        
    }
}

3.抽象類的使用

  • 不能實例化抽象類,但可以定義一個抽象類的引用。
    A a1 = new A();//error,不能生成抽象類的對象
    A a1; //OK, a1只是A的一個引用
  • 把一個子類對象的地址賦給抽象類的引用,然后通過抽象類的引用調用子類從父類繼承過來的方法,即抽象類也可以實現多態(tài)。
    假設A是抽象類,B是A的子類且實現了A中的所有抽象方法
    A a1 = new B();
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容