可能重复:
接口是否继承自 java 中的 Object 类
package inheritance;
class A{
public String display(){
return "This is A!";
}
}
interface Workable{
public String work();
}
class B extends A implements Workable{
public String work(){
return "B is working!";
}
}
public class TestInterfaceObject{
public static void main(String... args){
B obj=new B();
Workable w=obj;
//System.out.println(w.work());
//invoking work method on Workable type reference
System.out.println(w.display());
//invoking display method on Workable type reference
//System.out.println(w.hashCode());
// invoking Object's hashCode method on Workable type reference
}
}
正如我们所知,可以调用的方法取决于我们要调用的引用变量的类型。在这里,在代码中,work() 方法是在“w”引用(它是 Workable 类型)上调用的,因此方法调用将成功编译。然后,在 "w" 上调用 display() 方法,这会产生一个编译错误,表明未找到显示方法,这很明显,因为 Workable 不知道它。然后我们尝试调用 Object 类的方法,即 hashCode() ,这会产生成功的编译和执行。这怎么可能?有什么合乎逻辑的解释吗?