黎克特制替換原則中,將父類的引用指向子類的物件體現了多型的好處,就是不同物件對同一方法表現的行為是不同的。
在通過例項呼叫方法的時候,先會去父類中找這個方法,一看是virtual,而父類中的這個虛方法可能在子類中重寫也可能不重寫
重寫:呼叫子類中重寫的方法
不重寫:呼叫父類中的方法
如果子類中有乙個和父類中同名的方法,但不是重寫父類中的虛方法,那麼在呼叫的時候還是先去父類中找,然後去子類中找,一看父類中的虛方法在子類中沒有被重寫,所以呼叫的是父類中的方法,而子類中的這個同名方法是子類特有的,它將從父類中繼承過來的這個虛方法隱藏了,子類中方法重寫用:override,方法隱藏用:new關鍵字
public class a
public virtual void method1()
} public class b:a
///
/// 方法的隱藏
/// 子類特有的方法,只不過和父類繼承過來的方法名相同,所以繼承過來的同名的方法就隱藏了
///
public new void method1()
} class program
}
物件導向 4 類中方法
物件導向 4.類中方法 類中方法的宣告和使用 方法 描述類應該具有的功能 比如 math類 sqrt random scanner類 next arrays類 sort binarysearch tostring equals 1.舉個例子 public void eat public void s...
物件導向中方法的繼承順序問題
此程式繼承為d b c a 繼承原因 當子類方法繼承父類方法時,若父類方法還有別的子類方法,會優先將別的子類方法都繼承完,再繼承父類 class a def init self print a開始 print a結束 class b a def init self print b開始 super i...
5 2物件導向程式設計(中) 方法的重寫
一 定義 子類繼承父類以後,可以對父類中同名同引數的方法,進行覆蓋操作,也稱為方法的重置 覆蓋。在程式執行時,子類的方法將覆蓋父類的方法。重寫以後,當建立子類物件以後,通過子類物件呼叫字元類中的同名同引數的方法時,實際執行的是子類重寫父類的方法。二 重寫的規則 1.方法的宣告 許可權修飾符 返回值型...