这里要说一下,重写是继承时发生,在子类中重新定义父类中的方法。例如:基类方法声明为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(); } }
结果如下图: