override和new 产生的效果不同
namespace test
{
class Program
{
static void Main(string[] args)
{
Person p1 = new Student();
Person p2 = new SeniorStudent();
Person p3 = new Undergraduate();
p1.Say();
p2.Say();
p3.Say();
Console.ReadKey();
}
}
}
class Person
{
public virtual void Say()
{
Console.WriteLine("我是一个人!");
}
}
class Student : Person
{
public override void Say()
{
Console.WriteLine("我是一个学生!");
}
}
class SeniorStudent : Student
{
public override void Say()
{
Console.WriteLine("我是一个高中生!");
}
}
class Undergraduate : SeniorStudent
{
public new void Say()
{
Console.WriteLine("我是一个大学生!");
}
}