从c#中的抽象继承
Inheritance from abstract in c#
我有一个class:
public abstract BaseClass
{
public RequestType MethodOne(Request request)
{
// some work here with objectOne
return PostMethodOne(objectOne);
}
public abstract RequestType PostMethodOne(Request request);
}
然后我从 base class:
ihnerit
public class ChildClass : BaseClass
{
public override PostMethodOne(Request request)
{
// some work with request
return request;
}
}
是否调用了 methodOne,然后我可以在通过 methodOne 后处理 PostMethod 上的请求?
我必须打电话给 base.MethodOne 吗?
MethodOne
不是抽象的或虚拟的,这意味着它只是被 ChildClass
继承。
POstMethodOne
是抽象的,因此您必须在 ChildClass
中实现它。来电者这样做:
var myInstance = new ChildClass();
myInstance.MethodOne();
将从 BaseClass
调用 MethodOne
,后者又调用 PostMethodOne
- 这是抽象的并在 ChildClass
中实现 - 将自动调用。
This is a pretty common pattern,你可能只犯了一个错误 - POstMethodOne
应该是 protected
而不是 public
.
我有一个class:
public abstract BaseClass
{
public RequestType MethodOne(Request request)
{
// some work here with objectOne
return PostMethodOne(objectOne);
}
public abstract RequestType PostMethodOne(Request request);
}
然后我从 base class:
ihneritpublic class ChildClass : BaseClass
{
public override PostMethodOne(Request request)
{
// some work with request
return request;
}
}
是否调用了 methodOne,然后我可以在通过 methodOne 后处理 PostMethod 上的请求? 我必须打电话给 base.MethodOne 吗?
MethodOne
不是抽象的或虚拟的,这意味着它只是被 ChildClass
继承。
POstMethodOne
是抽象的,因此您必须在 ChildClass
中实现它。来电者这样做:
var myInstance = new ChildClass();
myInstance.MethodOne();
将从 BaseClass
调用 MethodOne
,后者又调用 PostMethodOne
- 这是抽象的并在 ChildClass
中实现 - 将自动调用。
This is a pretty common pattern,你可能只犯了一个错误 - POstMethodOne
应该是 protected
而不是 public
.