使用場景
當多個類之間有關係並且包含相同功能,但是功能主體不同,可以考慮向上抽取,只抽取功能含義,不抽取功能主體。由於功能主體不知道,故該方法是抽象的,修飾方法為abstract,包含了抽象方法的類是抽象類,也需要在類上加abstract。當不想讓外界建立物件時,也可修飾類為abstract。
抽象類的特點
抽象類不可以建立物件。
若子類沒有覆蓋抽象類的所有抽象方法,那麼子類也是乙個抽象類。
抽象類可以沒有抽象方法,但包含抽象方法的類一定是抽象類。
使用場景
當事物除了包含基本功能外,還有一些擴充套件功能,可將這些擴充套件功能抽象到介面中,是對外暴露的規則。介面中成員的特點
1. 變數:預設是常量,被修飾為public static final。
2. 方法:預設是抽象方法,被修飾為public abstract。
介面在繼承中的特點
介面可以被子類多實現,因為介面的方法是抽象的,沒有方法體,子類呼叫不會產生衝突。
介面與抽象類的區別
1. 介面是like a,抽象類是has a,即介面提供擴充套件功能,是對外暴露的規則,而抽象類提供子類的基本功能。
2. 當事物之間有內在聯絡時用抽象類,當只是有相同的操作時用介面。
3. 子類能實現多個介面,但是只能繼承乙個抽象類。
4. 介面的方法都是抽象的,抽象類可以沒有抽象方法。
使用場景
子類繼承抽象類或者實現介面。覆蓋注意事項當子類要重新賦予乙個方法的含義時。
子類覆蓋父類,子類方法許可權必須大於父類。靜態只能覆蓋靜態。
多型的體現:父類引用指向子類物件。
多型的好處:提高了**的擴充套件性。
多型的弊端:只能使用父類中的成員。
多型的前提:多個子類繼承或實現,並且覆蓋。
object類中的equals()和tostring()
super(屬性):呼叫父類建構函式
super.屬性:訪問父類同名屬性
super.方法名():訪問父類的成員函式
類:不可以被繼承,彌補了繼承導致破壞封裝性的問題
屬性:常量,只能賦值一次,一般與static共同修飾
方法:不可以被覆蓋
繼承與多型
繼承 繼承是c 語言支援 重用及多型的重要機制。通過繼承,可以繼承可以在現有類的基礎上派生出新類,新類將共享現有類的成員,並且還可以新增新的成員。c 語言中,重用主要表現為可以使用現成的類 如.net框架類庫中的類 來定義新類,主要方法有組合和繼承兩種 繼承是物件導向程式設計支援 重用的另乙個重要機...
繼承與多型
虛函式只要在基類裡定義,所以繼承類都不用重新定義為虛函式,自動成為虛函式。虛函式必須有實現,普通成員函式在沒有呼叫時可以沒有實現 定義 class animal 只需要在基類定義函式為虛,子類中不需要新增virtual.smile函式在沒有呼叫時可以不實現。當有函式為虛函式時,析構函式應定義為vir...
繼承與多型
繼承需要符合的關係 is a,父類更通用 子類更具體 子類繼承父類的所有屬性和方法 不包括父類構造方法 super可以呼叫父類的方法和構造方法 子類可以重寫父類的方法 使用多型之後,當需要增加新的子類型別時,無需更改總部類,程式的可擴充套件性及可維護性增強 簡單來說,多型是具有表現多種形態的能力的特...