黑马程序员技术交流社区

标题: interface 多实现之安全问题? [打印本页]

作者: 騛鹏    时间: 2013-3-14 08:37
标题: interface 多实现之安全问题?
本帖最后由 騛鹏 于 2013-3-14 20:54 编辑


     class可以多重继承,但不可多继承,是因为可能继承的多个父类中有相同的方法而不知执行哪个。

     那么interface呢? 多实现的Test类是复写的哪个interface的show()?还有interface的作用域?

interface Inter
{
     public static final int NUM = 3;
     public abstract void show();
}
interface InterA
{
     public abstract void show();
}
class Demo
{
public void function(){}
}
class Test extends Demo implements Inter,InterA
{
     public void show(){}
}

作者: HM赵磊    时间: 2013-3-14 09:11
接口中Inter和InterA中都存在抽象方法 public abstract void show(); 当Test类对这两个接口的方法进行覆写时,出现了两个show(),但是不会出错,因为这是实现接口,里面的show()方法都是抽象的,里面没有任何内容,所以不会出错



作者: 王智威    时间: 2013-3-14 09:16
这个有区别吗?,接口类中的所以方法都是抽象的,都是没代码实体,你写了什么它就是什么,如果实现了两接口,它们有相同的方法,这又有什么关系呢?这相同方法都是没有代码实体的。一个类实现了一个接口,就相当于这个类写了接口中所以的方法。

作者: 騛鹏    时间: 2013-3-14 10:32
谢谢 沙发 藤椅  还有作用域(即权限或生命周期)问题?
作者: 梅杰明    时间: 2013-3-14 12:28
两个接口中的 public abstract void show();方法中都没方法实体,Test方法实现了他们必须复写show方法,不会出现识别错误。
作者: 李思杰    时间: 2013-3-14 13:04
首先interface是修饰抽象类的,而抽象类中的抽象方法是没有方法体的(就是"{}"),所以就算你执行了也没有结果,所以不会产生安全问题。




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