【发布时间】:2016-09-25 19:08:43
【问题描述】:
我很好奇是否可以像父抽象类一样创建我可以在其中定义一组特定方法但子类包含不同实体类型的方法?代码示例:
public abstract class BaseService
{
public abstract void Add();
public abstract void Delete();
public abstract void Update();
public abstract void Get();
}
也许可以做类似public abstract List<'random type'> GetAll();的事情
但在这里我想用特定于每个子级的特定参数覆盖每个方法:
public class CategoryService : BaseService
{
public override void Add(){ }
public override void Delete(){ }
public override void Update(){ }
public override void Get(){ }
}
但是,在我的子类中,我希望我的 Get() 方法返回一个特定的 List (在本例中为 Category)。此外,我可能想做public override Add(int CategoryID) 而不是从BaseService 继承的Add。
这可能吗?想法?我只是疯了吗?还是我试图使这比需要的更复杂?我有大约 10 种不同的服务类型,我想确保从 BaseService 获取这些通用方法。
提前致谢!
【问题讨论】:
-
如果您要在所有子类中为
Add设置不同的参数,那么通过在基类中定义这些参数您会获得什么? -
I might want to do public override Add(int CategoryID) instead of the inherited Add from BaseService.那你为什么要使用override关键字呢?
标签: c# generics inheritance abstract-class