【发布时间】:2013-02-06 11:28:58
【问题描述】:
引用变量可以声明为类类型或接口类型。如果变量声明为接口类型,则它可以引用任何实现该接口的类的任何对象。
根据上面的说法,我做了一个代码理解。如上所述声明为接口类型,它可以引用任何实现该接口的类的任何对象。
但在我的代码中显示displayName() 方法未定义在objParent.displayName():
public class OverridenClass {
public static void main(String[] args) {
Printable objParent = new Parent();
objParent.sysout();
objParent.displayName();
}
}
interface Printable {
void sysout();
}
class Parent implements Printable {
public void displayName() {
System.out.println("This is Parent Name");
}
public void sysout() {
System.out.println("I am Printable Interfacein Parent Class");
}
}
我确定我理解错了。有人可以解释一下吗?
【问题讨论】:
-
您只能访问在创建引用的接口上定义的方法。所以在你的情况下,只有
sysout()方法被成功调用。
标签: java class oop inheritance