下面是我的基类,它有ReturnAddress方法,返回'地址一',在子类中重写覆盖返回'地址二'的相同方法.
public class Base
{
public virtual string ReturnAddress()
{
return "Address one";
}
}
public class Derived : Base
{
public override string ReturnAddress()
{
return "Address Two";
}
}
//Object declaration for base and derived
Base base = new Base();
Derived der = new Derived();
var result = der.ReturnAddress(); // will return "Address Two"
but if we replace der object with base object
var result = base.ReturnAddress(); //Will return "Address One"
Run Code Online (Sandbox Code Playgroud)
因此父对象无法替换子对象.
我想知道这是破坏Liskov原理的例子吗?