首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >多态与类对象

多态与类对象
EN

Stack Overflow用户
提问于 2014-10-26 18:02:30
回答 1查看 60关注 0票数 2

我们知道每个类都从Object扩展而来,这意味着我们可以在任何类中使用所有Object的方法。我的问题如下:

代码语言:javascript
运行
复制
   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扩展?

EN

回答 1

Stack Overflow用户

发布于 2014-10-26 18:07:48

这是在JLS §9.2. Interface Members中详细说明的

  • 如果接口没有直接的超级接口,则该接口隐式声明public abstract成员方法m,其中签名s、返回类型rthrows子句t对应于每个实例方法D12D13和签名D14、返回类型D15和<代码>D16子句D17E118,除非接口显式声明了具有相同签名、相同返回类型和兼容throws子句的D23方法。F226

这确保了可以通过任何接口调用Object方法。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26571824

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档