【发布时间】:2018-04-17 16:26:03
【问题描述】:
我对这些实现感到困惑。在一次采访中,面试官问我什么是组合,我给了他典型的定义,然后我为他写了这部分代码。
public class Foo {
private Bar bar = new Bar();
}
但他声称这个实现是正确的
interface IFoo
{
int DoSomthing();
}
class Bar : IFoo
{
public int DoSomthing()
{
throw new NotImplementedException();
}
}
哪个是正确的?
【问题讨论】:
-
第二个只是一个实现接口的类。我没有看到那里的成分。这应该有助于geeksforgeeks.org/association-composition-aggregation-java
-
我不是对你投反对票的人,但这可能是因为你没有表明你在提出问题之前已经付出了任何努力来研究组合优于继承的原则。您的第一个代码示例与组合没有任何关系。
-
阅读this page,第一段和第一个例子可能会让它点击。