【发布时间】:2017-09-25 21:02:45
【问题描述】:
我如何像这样从基类扩展行为?
public class A {
protected virtual void foo () {
Console.WriteLine("hi")
}
}
public class B : A {
protected override void foo () {
Console.WriteLine("hihi")
}
}
a = new A();
a.foo()
-> "hi"
-> "hihi"
在父类中调用 foo 时,我想执行特定于该类的行为,同时在子类中调用它。是否可以仅通过访问父级来做到这一点?
【问题讨论】:
-
base.foo()... -
这不会只调用基地吗?这样做时我只会得到“hihi”。
-
public class B : A { protected override void foo () { base.foo(); Console.WriteLine("hihi"); } } -
不,你不能让 A 自动调用 B 中的方法。A,父级,不知道它的子级。
标签: c# inheritance