【发布时间】:2014-09-25 17:58:30
【问题描述】:
我只是在学习 Java 和设计模式,我正在努力弄清楚何时使用接口和抽象类。我想知道在策略设计模式中,为什么对行为/算法子类使用接口而不是抽象超类更可取?
仅仅是因为不需要抽象类,因为每个行为/算法子类都有自己的实现,因此抽象超类只会提供不会使用的额外功能吗?
抽象类是否意味着将来有额外的可能性可以在需要时使用此额外功能,例如,如果需要,将方法添加到由行为/算法子类共享的抽象超类。有什么理由说明这是个坏主意吗?
还是有其他原因?
【问题讨论】:
-
设计模式是关于它们背后的一般思想,不一定是确切的实现。接口和抽象类方面是可以互换的。
-
接口也给你更多的灵活性,因为实现类可以实现多个接口或额外扩展一个类。
-
如果有疑问,请同时使用 :D 使抽象类实现接口并从抽象类扩展
标签: java oop inheritance design-patterns interface