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

1.抽象類

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

2.抽象方法

  • 定義方法時,只有方法頭,沒有方法體,這樣的方法稱為抽象方法。
  • 凡是沒有方法體的方法都必須用abstract關(guān)鍵字聲明為抽象方法。
  • 含有抽象方法的類都必須聲明為抽象類。
  • 抽象類不一定有抽象方法,有抽象方法一定是抽象類。
  • 子類如果沒有把抽象類的所有抽象方法具體實現(xiàn),則子類也必須聲明為抽象類。
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的一個引用
  • 把一個子類對象的地址賦給抽象類的引用,然后通過抽象類的引用調(diào)用子類從父類繼承過來的方法,即抽象類也可以實現(xiàn)多態(tài)。
    假設(shè)A是抽象類,B是A的子類且實現(xiàn)了A中的所有抽象方法
    A a1 = new B();
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容