给出以下代码:
public interface IExample { ... }
public abstract class BaseExample: IExample { ... }
public class ExampleA : BaseExample { ... }
public class ExampleB : BaseExample, IExample { ... }
编写像ExampleB这样的代码有什么好处或缺点吗?
我的猜测是在派生类ExampleB中重新指定IExample是多余的。我错了吗?我以为派生类隐式继承了其基类型实现的所有接口?
我们目前正在编写像ExampleB这样的东西,但是它开始让我觉得我们的一些派生类实现变得多么冗长。这里的另一位开发人员说它很好,因为它更好地声明了类的意图并使代码更具可读性。但对我来说它只是变得混乱。
答案 0 :(得分:0)
这将是多余的。
另一件值得注意的事情是,当单个实现开始实现大量接口时,它很可能会损害单一责任原则。很难说何时/如果是这种情况,它也很大程度上取决于接口。