【发布时间】:2016-09-06 13:17:11
【问题描述】:
考虑以下接口
interface Foo1
{
public function foo(BaseClass)
}
和
interface Foo2
{
public function foo(SpecialClass)
}
SpecialClass 继承自 BaseClass。
现在,只要需要 Foo2 实例,就可以使用 Foo1 实例。我的意思是,如果我需要一个带有foo 方法并接受SpecialClass 的对象,我可以使用带有foo 方法并接受BaseClass 的对象来完成这项工作。
因此我希望能够将Foo1 声明为Foo2 的子类(即Foo1 extends Foo2)。
在PHP(我通常使用的语言)中这是不可能的,并且会产生致命错误。
据我所知,这在 Java 中是可行的,但需要实现一个特定的 foo 方法,以一个特殊的类作为参数(我错了吗?)。
这一切有意义还是我错过了什么?是否有任何其他面向对象的语言可以开箱即用地提供此功能?
【问题讨论】:
标签: java php oop inheritance interface