我们知道每个类都从Object扩展而来,这意味着我们可以在任何类中使用所有Object的方法。我的问题如下:
interface B{
}
public class A implements B{
public static void main(String[] args){
B i = new A();
i.display();//we can't do this : because the interface B doesn't define such a method
System.out.println(i.toString());// we can do this although the interface doesn't extend from Object
}
public void display(){
}
}
所以我认为问题很明显,为什么我可以调用toString方法,而接口B却不能从Object扩展?
发布于 2014-10-26 18:07:48
这是在JLS §9.2. Interface Members中详细说明的
public
abstract
成员方法m
,其中签名s
、返回类型r
和throws
子句t
对应于每个实例方法D12D13和签名D14、返回类型D15和<代码>D16子句D17E118,除非接口显式声明了具有相同签名、相同返回类型和兼容throws
子句的D23方法。F226这确保了可以通过任何接口调用Object
方法。
https://stackoverflow.com/questions/26571824
复制相似问题