【发布时间】:2010-12-23 12:05:07
【问题描述】:
最近遇到了一个有趣的特性,不过,它可能会导致 Eclipse “添加未实现的方法”特性的意外输出。这种“偶尔隐式实现”背后的语言概念的“googl-able”名称是什么?
我不希望下面的代码编译,但它确实并且正在工作
interface CallmeIfc {
public void callme();
}
class CallmeCode {
public void callme() {
// implementation
}
}
class CallmeImpl extends CallmeCode implements CallmeIfc {
// empty class body
}
public static void main(String[] args) {
CallmeIfc me = (CallmeIfc) new CallmeImpl();
me.callme(); // calls CallmeCode.callme()
}
【问题讨论】:
-
嗯...继承?虚函数表?
-
您的
CallMeImpl通过从CallMeCode继承来实现public void callme()。就是这样,没有什么特别的名字。 -
@Joonas Pulakka - 我得到了它的名字,“分包”,Impl 就像一个代理,由承包商(超级类)为客户(接口)提供服务,而不让他们彼此认识: )
-
@OrangeDog - 是的,没错,但被滥用了
-
@bobah - 不是真的,这就是它的设计目的。
标签: java inheritance compiler-construction polymorphism