强制基方法调用

2022-01-24 00:00:00 inheritance super polymorphism c# java

Java 或 C# 中是否存在强制继承类调用基本实现的构造?您可以调用 super() 或 base() 但如果不调用它是否有可能引发编译时错误?那会很方便..

Is there a construct in Java or C# that forces inheriting classes to call the base implementation? You can call super() or base() but is it possible to have it throw a compile-time error if it isn't called? That would be very convenient..

--编辑--

我主要对重写方法感到好奇.

I am mainly curious about overriding methods.

推荐答案

没有也不应该这样做.

如果在基类中有这样的东西,我能想到的最接近的东西:

The closest thing I can think of off hand if something like having this in the base class:

public virtual void BeforeFoo(){}

public void Foo()
{

this.BeforeFoo();
//do some stuff
this.AfterFoo();

}

public virtual void AfterFoo(){}

并允许继承类覆盖 BeforeFoo 和/或 AfterFoo

And allow the inheriting class override BeforeFoo and/or AfterFoo

相关文章