jp2*_*ode 2 c# implementation overriding interface abstract
我必须设计大约5个不同的课程.
这些类的许多部分将非常相似,但它们会有轻微的差异(当然).
如果我写了interface一个我设计的每个类都实现了,那么必须完全编写每个abstract方法interface.
如果我编写一个我的base每个设计类派生的类,那么每个类将自动在virtual我在base类中创建的方法中具有一些功能,但是它们都需要被覆盖,调用base功能,包含细微的差异.
有没有办法结合这些功能?我喜欢要求实现interface的方法,但我也喜欢设置由base类预先编程的功能.
我在这里和其他地方看过很多例子,但看起来并没有人像我所描述的那样.它甚至可能吗?
编辑:所以,鉴于此:
abstract class Base
{
virtual protected void OptionallyOverridable() {}
abstract protected void SubclassMustImplement();
}
Run Code Online (Sandbox Code Playgroud)
...有没有办法写出这样的东西:
abstract class Base2
{
DataEventType EventType;
DataChangedEventHandler OnDataChange;
virtual protected void OptionallyOverridable() {}
abstract protected void SubclassMustImplement() {
// values here are guaranteed
}
}
Run Code Online (Sandbox Code Playgroud)
C#允许类从基类继承并实现接口,那么为什么不这样做呢?
public interface IFoo
{
public void Bar();
public bool Baz();
}
public abstract class BaseFoo : IFoo
{
//fields/properties used in all classes
public void Bar()
{ //Implementation }
public bool Baz()
{ //Implementation }
}
public class DerivedFoo : BaseFoo, IFoo {...}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6751 次 |
| 最近记录: |