虛方法:用virtual修飾的方法叫做虛方法
虛方法可以在子類中通過override關鍵字來重寫
常見的虛方法:tostring(). equals
虛方法特點總結:
1,在父類中把需要設定為虛方法的方法前加virtual標記;
2,虛方法在父類中必須有實現,哪怕是空實現
3,子類繼承父類後,可以選擇對虛方法進行重寫也可以選擇不進行重寫;
4,當子類重寫父類方法的時候,必須保證重寫後的方法和原方法的訪問修飾符,返回值型別,方法名,引數列表完全一致;
5,當方法的標記是virtual和override的時候都可以重寫。
方法重寫注意事項:
子類重寫父類方法時,必須與父類保持一致的方法簽名與返回值型別。即:方法名、返回值型別、引數列表都必須保持一致。
[訪問修飾符也得一致
]「方法簽名」:一般是指方法的【名稱
】+方法的
【引數列表
】,不包含方法返回值型別
虛方法與重寫 1
、方法不能用
static修飾
2、方法重寫與基類的簽名必須一致 3
、virtual
不能與private
一起使用 4.
虛方法為什麼不能加
static
因為 虛方法是父類,加
static
,那麼就是類呼叫這個方法
,和物件無關了
,那子類就調不了,
base.fun();
的目的主要是新增邏輯
override與過載(overload)的區別
過載是方法的名稱相同。引數或引數型別不同,進行多次過載以適應不同的需要。過載(
overload
)是面向過程的概念。
override
是進行基類中函式的重寫。
override
是物件導向的概念
虛方法實現多型
class program
else if (people[i] is british)
else if (people[i] is japanese)
#endregion
//這句話體現了多型。。。。
people[i].show();
//}#endregion}}
public class person
public int age
public int height
//在person型別中增加乙個show()方法。
//第一步:將父類中的show方法標記為virtual(虛方法)
public virtual void show()
}//高麗
public class korean : person
}/// /// 朝鮮
///
public class northkorean : korean
}public class american : person
}/// /// 中國人類
///
public class chinese : person
}/// /// 英國人類
///
public class british : person
}/// /// 日本人類
///
public class japanese : person
}
C 多型實現之虛方法
控制台應用程式中,新建乙個people類檔案,如下 using system using system.collections.generic using system.linq using system.text namespace 13多型 public string name 1.第一,將父類...
虛方法實現多型
大家都知道物件導向的三大特徵,封裝 繼承 多型,這裡解釋一下多型 同一操作作用於不同的物件,可以有不同的解釋,產生不同的執行結果,這就是多型性。換句話說,實際上就是同乙個型別的例項呼叫 相同 的方法,產生的結果是不同的。這裡的 相同 打上雙引號是因為這裡的相同的方法僅僅是看上去相同的方法,實際上它們...
C 通過虛方法實現方法重寫 多型。
class program 希望person存的是哪個類的物件就呼叫哪個類的方法 第一步 將父類中對應方法家virtual關鍵字 變為虛方法 子類可重寫 子類中方法用override關鍵字將父類虛方法重寫 person i say 這句話就體現了多型 public class person publ...