在选择抽象类或接口时,有两种方法。微软解决方案和Oracle解决方案:
微软,设计指南:
使用抽象类(在Visual Basic中为MustInherit)而不是接口来解耦合同与实现。
http://msdn.microsoft.com/en-us/library/ms229013.aspx
Oracle,Java教程:
如果一个抽象类只包含抽象方法声明,则应该声明为接口。
http://docs.oracle.com/javase/tutorial/java/IandI/abstract.html
我的问题是哪种方法是正确的?微软还是甲骨文解决方案?请注意,我认为在抽象类或接口之间选择不应取决于编程语言(Java或C#)。