C#中的virtual、new、override
new相当于重载
override相当于覆盖
using System;
using System.Collections.Generic;
using System.Linq; using System.Text;
namespace ConsoleApplication1
{
class Program {
static void Main(string[] args) {
father _father = new son1();
_father.printclassname();
son _son = new son1();
_son.printclassname();
son0 _son0 = new son1();
_son0.printclassname();
}
}
public class father {
public father() { }
public void printclassname()
{
Console.WriteLine("father");
}
}
public class son : father
{
public son() { }
public new virtual void printclassname()
{
Console.WriteLine("son");
}
}
public class son0 : son
{
public son0() { }
public new virtual void printclassname()
{ Console.WriteLine("son0"); }
}
public class son1 : son0
{
public son1() { }
public override void printclassname()
{ Console.WriteLine("son1"); }
}
}
输出的答案为:father
son
son1