如果MyAbClass2
没有实现MyMethod
它甚至不应该指定它 - 它仍然存在abstract
。如果是这样,那么它应该使用override
关键字,Myderived
也可以覆盖。
abstract class MyAbClass1
{
abstract public int MyMethod(int x);
}
abstract class MyAbClass2 : MyAbClass1
{
// no implementation of MyMethod
}
class Myderived : MyAbClass2
{
override public int MyMethod(int x) // this now works
{
return x;
}
}
或者
abstract class MyAbClass1
{
abstract public int MyMethod(int x);
}
class MyAbClass2 : MyAbClass1 // no longer abstract
{
override public int MyMethod(int x)
{
return x*2;
}
}
class Myderived : MyAbClass2
{
override public int MyMethod(int x) // this now works
{
return x; // or perhaps base.MyMethod(x) - 42;
}
}