【发布时间】:2015-05-12 03:09:27
【问题描述】:
最近我有一个面试,我被问到以下问题。给定以下类/接口结构:
问题:
如何实现接口EmployedStudent 以重用来自StudentImpl 和EmployeeImpl 的代码。
我建议将 Employee 和 Student 组合到我的实现中。
根据面试官的反应,我认为他们认为这不是最佳解决方案。我花了很多时间思考它,但我无法想出另一个解决方案。
【问题讨论】:
-
就代码重用而言,组合对我来说也是最好的方式。如果没有多重继承,我不知道您将如何以任何其他方式重用 both
StudentImpl和EmployeeImpl的代码。 -
我也说过作曲。我想,您可以从其中一种实现中派生
EmployedStudent,然后只需要对另一种实现使用组合。但我不会说这真的比直接组合更好,除非其中一个界面比另一个界面更“主要”(例如,主要方面是它是一名员工,而学生位相当次要)。
标签: java inheritance interface implementation composition