這里要說一下,重寫是繼承時發生,在子類中重新定義父類中的方法。例如:基類方法聲明為virtual方法,派生類中使用override聲明此方法的重寫。
基類中的訪問修飾符在子類中是不能被修改的。比如說基類中的訪問修飾符為protected,那么子類中的訪問修飾符也必須是這個。而且不能是private的。而如果是protected類型的那就意味着此方法不能被第三個類調用。
比如說這里有一個基類Base.cs
class Base { public Base() { } public virtual void AAA() { Console.WriteLine("This is AAA"); } }
還有一個子類Inheritance.cs
class Inheritance:Base { public override void AAA() { base.AAA(); Console.WriteLine("This is BBB"); } }
base.AAA();的意思是繼承父類Base.cs中AAA函數的所有內容。
在Program.cs中調用Inheritance.cs中的AAA。
class Program { static void Main(string[] args) { Inheritance inin = new Inheritance(); inin.AAA(); Console.ReadKey(); } }
結果如下圖: