黑马程序员技术交流社区

标题: 求解一个接口多实现的问题 [打印本页]

作者: rover0321    时间: 2014-6-7 22:24
标题: 求解一个接口多实现的问题
假如我有两个接口定义如下:
interface Interface1
{
    void fun1();
    // 其他方法申明
}

interface Interface2
{
    void fun1();
    // 其他方法申明
}

这两个接口有同名的方法fun1()。那么如果此时有个类同时实现了这两个接口

class Demo implements Interface1, Interface2
{
    public void fun1()
    {
        // 方法定义
    }
}
那么此时我算实现哪个接口的fun()函数呢?接口可以多实现可以怎么理解呢?虚心请教一下大家,谢谢。


作者: LJZkevin    时间: 2014-6-7 23:15
实现一个接口就要实现接口的所有方法,所以就是两个都实现了,接口只能继承接口不能多实现,只能多继承。假如一个接口继承了多个接口,就具有了多个功能,如果一个类实现了这个接口的话,就能实现多个功能
作者: 四顾行者    时间: 2014-6-7 23:23
相当于都覆写了fun1()方法,不存在实现哪个接口
作者: rover0321    时间: 2014-6-7 23:25
LJZkevin 发表于 2014-6-7 23:15
实现一个接口就要实现接口的所有方法,所以就是两个都实现了,接口只能继承接口不能多实现,只能多继承。假 ...

谢谢,其实我想说的是类多实现接口怎么理解,笔误了。
作者: java木    时间: 2014-6-7 23:41
这个问题在毕老师7天-13的视屏里提过。接口里的方法都是抽象的,没有方法主体。实现两个接口,这两个接口的方法是同名的话,你在实现类中复写的一个方法,相当于同时实现了两个接口中的抽象方法。即两个接口你的实现方法是一样的。你觉得两个类中有相同的方法有问题吗?当然没。
你要明确接口的作用与意义而不是拘泥于这种语法。
接口中的方法是抽象的是因为接口只用来定义规则协议,只要求你必须做某些事,但不要求你如何做。这就是协议。
作者: 艮昕辶    时间: 2014-6-8 10:13
你这样写就代表两个接口的功能
都用你自己复写的func()方法实现了
接口是提供功能的
接口中的方法是让你来实现功能的
你复写方法就是为了实现功能
你复写了两个接口中的同名方法已经实现了两个接口的功能了
不存在什么实现哪个的问题
都实现了
作者: 江祖贇    时间: 2014-6-8 10:25
java木 发表于 2014-6-7 23:41
这个问题在毕老师7天-13的视屏里提过。接口里的方法都是抽象的,没有方法主体。实现两个接口,这两个接口的 ...

看的很详细啊  不会忘记吗 有时候我学了后面的前面的忘了   怎么做的啊  学习下
作者: kongyan4696    时间: 2014-6-8 17:41
都是要实现的,  管他哪个那。




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