让继承同一父类的子类们 在执行相同方法时有不同的表现(状态)
virtual override base
加了虚函数 子类就可以重写 virtual 修饰的方法要用Public或者protect,用私有就废了
重写之后在外部调用时
用父类装子类的对象 点出来就是子类(重写)的方法 具体的如果想在重写的方法里调用父类方法可以base.出来即可调用
也完全可以不保留父类的方法逻辑
using System.Runtime.CompilerServices;
using System.Runtime.Serialization;
using System.Security.Cryptography;
using System.Text.Json.Serialization;
class Staff
{
public virtual void ClockIn()
{
Console.WriteLine("员工9点打卡");
}
}
class Manager : Staff
{
public override void ClockIn()
{
Console.WriteLine("经理11点打卡");
}
}
class Programmer : Staff
{
public override void ClockIn()
{
Console.WriteLine("程序员不打卡");
}
}
class Program
{
static void Main()
{
Staff s = new Manager();
Staff s2 = new Programmer();
Staff staff=new Staff();
s.ClockIn();
s2.ClockIn();
staff.ClockIn();
}
}