C#重写父类方法,虚方法(virtual,override)

把一个基类函数声明为virtual,就可以在任何派生类中重写该函数:

class MyBaseClass{
	public virtual string VirtualMethod(){
		return "Method is called in base class";
	}
}

在派生类中重写另外一个函数时,要使用override关键字显示声明

class MyDerivedClass:MyBaseClass{	
	public override string VirtualMethod(){
		return "Method is called in derivedclass.";
	}
}

我们在子类里面重写虚函数之后,不管在哪里调用都是调用重写之后的方法

例如

   class A
	{
		public virtual void printStr(string str)
		{
			Console.WriteLine(str);
		}
	}
	class B:A
	{
		public override void printStr(string str)
		{
			str=str+" 重写的方法";
			Console.WriteLine(str);
		}
	}
	class DefaultInitializerApp
	{
		public static void Main()
		{
			B b=new B();
			A a=b;
			a.printStr("打印");
			b.printStr("打印");
			Console.ReadLine();
		}
	}

这里输入的是
–》打印 重写的方法
–》打印 重写的方法

你可能感兴趣的:(C#)