黑马程序员技术交流社区

标题: 接口的问题 [打印本页]

作者: 王永旺    时间: 2012-4-7 15:45
标题: 接口的问题
本帖最后由 王永旺 于 2012-4-7 15:47 编辑

如果一个类从两个接口继承,并且两个接口中具有同一种方法,这时候怎么实现这个方法呢。
例如:
public interface A {
        public double run();      //这里是第一个run
}

interface B {
        void run();                 //这里第二个run
}

class C implements A,B  {

        public double run() {return 1.0; }    //两个接口中都存在run方法,那么这时候要怎么实现呢?还是根本就不能实现。       

}                               
作者: 郑苑东    时间: 2012-4-7 15:49
本帖最后由 郑苑东 于 2012-4-7 15:50 编辑

其实这样子的无论你override了哪个方法。。其实都是一次性重写了那两个方法。。而且要注意的是如果你实现的接口中有两个或两个以上的同名的方法。。那么这些同名方法的返回值必须一样。。不然会出错。。。
作者: 秦岩    时间: 2012-4-7 15:52
因为你实现的是double的run方法所以就只重写了A接口。
一个类中有两个签名相同的方法,无法通过编译。
作者: 刘_浩    时间: 2012-4-7 19:52
编译是不能通过的。一个double 一个void。
作者: 郑涛    时间: 2012-4-7 20:55
C不是抽象的,并且未覆盖B中的抽象方法run()。
C中的run()无法实现B中的run(),返回类型double与void不兼容。
另外接口中的抽象方法只能是public类型的,并且默认即为public abstract类型.
作者: pray    时间: 2014-4-26 04:12
在遇到你之前,我对人世间是否有真正的圣人是怀疑的;而现在,我终于相信了!我曾经忘情于汉廷的歌赋,我曾经惊讶于李杜的诗才,我曾经流连于宋元的词曲;但现在,我才知道我有多么浅薄!  




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2