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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 何羡玉 中级黑马   /  2013-4-24 20:01  /  1975 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 何羡玉 于 2013-4-25 09:17 编辑

实现接口的方法,不是子类的方法权限大于等于父类方法就可以吗 为什么这里要加public

5]Y1V~PO~$O7BXS)S)OY9BT.jpg (25.16 KB, 下载次数: 5)

5]Y1V~PO~$O7BXS)S)OY9BT.jpg

7T0DYB_}SZ[KZAEB@ZWM{$6.jpg (21.55 KB, 下载次数: 24)

7T0DYB_}SZ[KZAEB@ZWM{$6.jpg

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

7 个回复

倒序浏览
1 接口中的成员变量默认都是public、static、final类型的,必须被显式初始化
2. 接口中的方法默认都是public、abstract类型的。
子类要是不加的话默认是default的,他的权限就小了,所以报错!

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
接口中的方法只声明,不实现,字段都是final的static的(都是自动)。接口中的方法是abstract和public(这些都是自动)。当类来实现他的时候如果不添加public,那么它只有包访问权限,这样在方法被继承的过程中,他的访问权限就会被降低。java编译器中这样的情况是不允许的。

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
因为你在定义接口时里面的方法是public修饰的,如果没有定义修饰符系统自动帮你定义成public修饰的抽象方法,所以你在实现接口是方法自然也要用public来修饰,不然肯定报错咯,

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
接口中的方法只声明,不实现,字段都是final的static的(都是自动)。接口中的方法是abstract和public(这些都是自动)。当类来实现他的时候如果不添加public,那么它只有包访问权限,这样在方法被继承的过程中,他的访问权限就会被降低。java编译器中这样的情况是不允许的。

评分

参与人数 1技术分 +2 收起 理由
黄玉昆 + 2

查看全部评分

回复 使用道具 举报
建议楼主把代码贴出来,不要截图,具体如何将代码插入代码框,请看帖:
http://bbs.itheima.com/thread-42978-1-1.html
回复 使用道具 举报
首先你要知道你自己定义的接口中
1 接口中的成员变量默认都是public、static、final类型的,必须被显式初始化
2. 接口中的方法默认都是public、abstract类型的。
  1. interface kou<T>
  2. {
  3.     void show(T t );//这句话其实是public abstract void show(T t)  如果你没有写 系统会默认加上   请查看毕老师的第8天的接口类  讲的很明白
  4. }
复制代码
回复 使用道具 举报
接口中的方法都是抽象的,只声明,需要子类对接口中的方法进行覆盖后才可以实现,接口中的成员都有固定修饰符,常量修饰符为public static final,方法修饰符为public abstract,这些可以省略不写,因为这些都是自动的,接口中的成员都是public的。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马