java學習之抽象類(java面向對象之抽象類)
2023-05-13 23:19:01
抽象方法和抽象類:由abstract修飾的方法為抽象方法,抽象發即只有方法的定義,沒有方法體實現,用一個分號結尾。也可以將抽象方法理解為不完整的方法,若抽象方法包含在類中,則該類也應該為抽象的,可以理解為該類也不完整,抽象類由abstract關鍵字聲明。
抽象類時不能實例化對象的,而一個類不能實例化是沒有意義的,所以需要定義新類來繼承抽象類,而如果一個類繼承了抽象類。則其必須重寫其抽象方法(變不完整為完整).
即使一個類中沒有抽象方法,也可以將其定義為抽象類,同樣,該類不能實例化,需要注意:abstract和final不能同時修飾一個類,因為final關鍵字使得類不可繼承,而abstract修飾的類如果不能被繼承將沒有任何意義,兩者放一起,將會衝突,使得該類沒有意義。
繼承抽象類:一個類被繼承後,必須實現其抽象方法,不同的子類可以有不同的實現,
接口:接口間可以存在繼承關係,即一個接口可以通過extends關鍵字繼承另外一個接口。子接口因為繼承了父接口中定義的方法。所以必須實現,如下代碼:
接口和抽象類的區別:
一個類只能繼承一個抽象類,但可以實現多個接口,
抽象類中可以包含抽象和非抽象方法,但接口中所以方法都是抽象的,
子類繼承抽象類必須實現抽象類中所有的抽象方法,否則子類也必須是抽象類,而子類實現接口必須實現接口中的所有抽象方法,