c# Abstract Class implementing an Interface
我已经看到了下面的代码布局阅读论坛和其他博客文章,并进行了修改,以便提出一些问题。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | public interface IService<T> { int Add(T entity); void Update(T entity); } public abstract class ServiceBase<T> : IService<T> { public int Add(T entity) { ... } public void Update(T entity) { ... } } public interface ICarService : IService<Car> { } public class SomeBaseClass : ServiceBase<Car>, ICarService { public int Add(Car entity); public void Update(Car entity); } |
我不明白的是让抽象类实现接口的好处。对我来说,它只是感觉有点重复,我无法理解抽象类实现接口的好处。
1:《额外的抽象基两类允许你进化的接口没有打破执行。我不应该有一个抽象类和基地,你会在他们的界面,简单的说,城市的一个新的综合方法。然后你的实施是破碎的,因为你的课不实施任何语言的接口。
使用额外的抽象类,你可以单独的基本:如果你添加一个新的方法的接口,你可以提供一个虚拟的执行基础类和你的子类可以在鸭子一样,可以通过两个匹配的新接口,后来一点的时间。
另外,这种组合允许你定义一个合同(使用的)接口和提供了一些默认的机制(使用抽象类的基础)。任何人谁的精细与inherit defaults可以从抽象类的基础。任何人谁想嫁给超级精细控制的任何关于实施《小零售CAN接口的表壳,手动上弦。
广告二:从技术的观点有点不需要实施的接口的太空舱。但这一次,允许你进化的东西分别从每个其他。一
我想这就是为什么);