我先来一个对里氏替换原则的理解:
LSP---Liskov Substitution Principle(里氏替换原则):子类必须能够替换其基类
public class DemoA
{
public void Method()
{
Console.WriteLine("基类方法!");
}
public virtual void Show()
{
Console.WriteLine("基类方法!");
}
}
public class DemoB : DemoA
{
public void Method()
{
Console.WriteLine("子类方法!");
}
public override void Show()
{
Console.WriteLine("子类方法!");
}
}
public class Program
{
static void Main(string[] args)
{
DemoA demo = new DemoB();
demo.Method();//不能隐式的实现子类的方法,违反里氏替换原则
demo.Show();//子类必须能够替换其基类,符合里氏替换原则
Console.ReadKey(true);
}
}
|