java 抽象類需要注意的幾點

一個抽象類要注意以下幾點:
        (1)抽象類只能作爲其他類的基類,它不能直接被實例化,而且對抽象類不能使
用new操作符。抽象類如果含有抽象的變量或值,則它們要麼是null類型,要麼包含
了對非抽象類的實例的引用。

       (2)抽象類允許包含抽象成員,但這不是必須的(可以允許一個抽象類中沒有任何抽象成員);抽象類中可以有非抽象方法。

       (3)抽象類不能同時又是final的。如果試圖將-一個final類作爲其他類的基類,Java將提示“The class can be either abstract or final, not both"。理所當然,final 類不能同時又是抽象類,因爲抽象總是希望被繼承的。

        (4)如果一個非抽象類從抽象類中派生,則其必須通過覆蓋來實現所有繼承而來的抽象成員。

       (5)抽象類可以被抽象類所繼承,結果仍是抽象類。

       (6)抽象類允許被聲明。

例子:

public abstract class Person {  //建立一個抽象類Person
    public  abstract void SayHello(); //其中存在抽象方法SayHello
    public void about(){ //以及一個非抽象方法
        System.out.println("Abstract Demo");
    }
}
class Student extends Person{ //建立實體類Student 繼承Person
    

    @Override
    public void SayHello() {  //必須覆蓋抽象方法 SayHello
        System.out.println("SayHello");
    }
}


class Nurse extends Person{ //建立實體類Nurse 繼承Person


    //沒有覆蓋抽象方法SayHello。所以這個類是錯誤的。
}

abstract class Pupil extends Person{ //建立抽象類Pupil 繼承Person

    @Override
    public void SayHello() {  //可以覆蓋抽象方法 SayHello
        System.out.println("SayHello");
    }

}

abstract class Worker extends Person{ //Worker 繼承Person

   //抽象類繼承抽象類,可以不覆蓋方法 SayHello。 所以這個類是正確的

}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章