using System;
class A
{
public virtual void F() {
Console.WriteLine("A.F");
}
public virtual void G() {
Console.WriteLine("A.G");
}
}
class B: A
{
sealed override public void F() {
Console.WriteLine("B.F");
}
override public void G() {
Console.WriteLine("B.G");
}
}
class C: B
{
override public void G() {
Console.WriteLine("C.G");
}
}在上面的问题中,我想知道类c没有名为f()的方法,我的意思是,如果我为它创建一个对象并访问方法f(),它会抛出错误吗?如果是,那么我想知道,由于继承,类c应该有一个名为f()的方法,属于类A…所以我不能打这个电话?
发布于 2010-10-31 15:31:02
您不能从派生类中移除基类中的方法;这将违反LSP,并且可以通过简单地强制转换为基类而失败。sealed关键字防止任何派生类覆盖该方法;它不会隐藏该方法。
https://stackoverflow.com/questions/4062211
复制相似问题