-2

这是一个 Java 问题,我能够使用这个概念,但不知道它为什么起作用。我写了一个类似的方法

private typeA someMethod()
{
    //do some stuff
    typeB someOtherObject; //here, typeB implements typeA
    //do some more stuff
    return someOtherObject;
}

它有效!我不太清楚为什么会这样。接口是 C++ 的多重继承的 Java 等价物吗?(我在执行此操作的 JFreeChart 演示中获取了一些代码,然后用它来编写我的一个应用程序。)

4

1 回答 1

3

它之所以有效,是因为 aTypeB 是 a TypeA。任何TypeA需要 aTypeB的地方,都可以用 a 代替。

如需进一步阅读(不是特定于 Java 的),请参阅Liskov 替换原理

于 2013-07-16T00:50:45.527 回答