【发布时间】:2019-01-05 10:43:55
【问题描述】:
我有三门课。首先是抽象的,它被子类继承,子类又被继承。如何从抽象类的第三类调用方法?
示例代码:
public abstract class DoSth
{
public void DoSomething()
{
Console.WriteLine("I'm doing something");
this.DoSomethingBigger();
}
protected abstract void DoSomethingBigger();
}
public class Writer : DoSth
{
protected override void DoSomethingBigger()
{
Console.WriteLine("I'm writting");
}
}
public class BookWriter : Writer
{
protected new void DoSomethingBigger()
{
Console.WriteLine("I'm writting a book");
}
}
如何从BookWriter 类调用DoSomethingBigger()?
当我创建 BookWriter 的实例并调用 DoSomething() 时,我的输出是
I'm doing something
I'm writting
但我想要
I'm doing something
I'm writting a book
【问题讨论】:
-
您并没有覆盖第三类中的方法,您基本上是在创建一个基础一无所知的全新方法。您的意思是改写它吗?