如果類別與類別之間有繼承關係,則您可以用父類別宣告一個參考名稱,並讓其參考至子類別的實例,並以父類別上的公開介面來操作子類別上對應的公開方法,這是多型( Polymorphism )操作的基本方式。
更進一步的,您可以在父類別中事先規範子類別必須實作的方法,父類別中暫時無需實作,如果一個類別中包括了抽象方法,這樣的方法稱之為抽象方法( Abstract method ),它的目的是先規範操作介面,並在執行時期可以操作各種子類別的實例,包括有抽象方法的類別則稱之為抽象類別( Abstract class ),抽象類別是個未定義完全的類別,所以它不能被用來生成物件,它只能被擴充,並於擴充後完成未完成的抽象方法定義。
在定義類別的時候,您也許會先定義出一些子類別必須共同遵守的行為,但父類別的目的只是先定義,在父類別中並不打算實作這些行為,此時您可以將這些行為定義為抽象方法( Abstract method )。
在定義方法時,您可以使用關鍵字 abstract 來修飾它成為抽象方法,而一個含有抽象方法的類別則稱之為抽象類別( Abstract class ),抽象類別不能被實例化,它只能被繼承,繼承抽象類別的子類別必須實作抽象類別中所有的抽象方法。
透過 JAVA抽象方法、類別解說之後,我們可以了解到:
1.抽象類別可定義一般函數與抽象函數。
2.抽象類別不能用來建立物件。
3.抽象函數不定義其處理方式。
4.子類別繼承而來的抽象函數與改寫overriding 技術相同。
5.針對子類別會使用到的條件,可以在父類別中定義抽象函數來使用。
6.抽象函數 只能宣告為公有(public)或保護(protected),因為子類別必須取用,所以不能宣告成私有(private)。