dio*_*nou 0 c# inheritance abstract
我有一节课:
public abstract BaseClass
{
public RequestType MethodOne(Request request)
{
// some work here with objectOne
return PostMethodOne(objectOne);
}
public abstract RequestType PostMethodOne(Request request);
}
Run Code Online (Sandbox Code Playgroud)
然后我从基类开始:
public class ChildClass : BaseClass
{
public override PostMethodOne(Request request)
{
// some work with request
return request;
}
}
Run Code Online (Sandbox Code Playgroud)
是methodOne被调用然后我可以在PostMethod通过methodOne后处理请求吗?我必须打电话给base.MethodOne吗?
MethodOne不是抽象的或虚拟的,这意味着它只是简单地继承ChildClass.
POstMethodOne是抽象的,因此你必须实现它ChildClass.调用者这样做:
var myInstance = new ChildClass();
myInstance.MethodOne();
Run Code Online (Sandbox Code Playgroud)
将调用MethodOne从中BaseClass调用PostMethodOne- 这是抽象的并在ChildClass其中实现- 将自动调用.
这是一种非常常见的模式,你只犯了一个错误 - POstMethodOne应该protected不是public.