A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 騛鹏 中级黑马   /  2013-3-14 08:37  /  1535 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 騛鹏 于 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(){}
}

评分

参与人数 1技术分 +1 收起 理由
猫腻 + 1

查看全部评分

5 个回复

倒序浏览
接口中Inter和InterA中都存在抽象方法 public abstract void show(); 当Test类对这两个接口的方法进行覆写时,出现了两个show(),但是不会出错,因为这是实现接口,里面的show()方法都是抽象的,里面没有任何内容,所以不会出错


评分

参与人数 1技术分 +1 收起 理由
猫腻 + 1

查看全部评分

回复 使用道具 举报
这个有区别吗?,接口类中的所以方法都是抽象的,都是没代码实体,你写了什么它就是什么,如果实现了两接口,它们有相同的方法,这又有什么关系呢?这相同方法都是没有代码实体的。一个类实现了一个接口,就相当于这个类写了接口中所以的方法。

评分

参与人数 1技术分 +1 收起 理由
猫腻 + 1

查看全部评分

回复 使用道具 举报
谢谢 沙发 藤椅  还有作用域(即权限或生命周期)问题?
回复 使用道具 举报
两个接口中的 public abstract void show();方法中都没方法实体,Test方法实现了他们必须复写show方法,不会出现识别错误。
回复 使用道具 举报
首先interface是修饰抽象类的,而抽象类中的抽象方法是没有方法体的(就是"{}"),所以就算你执行了也没有结果,所以不会产生安全问题。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马