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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© chuanyueing 中级黑马   /  2013-3-9 22:33  /  2954 人查看  /  11 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文


  1. public interface Test{                                                                        //这个接口为什么不可以加上public?编译没错,运行错误
  2.         public void test();
  3.         }

  4. class Testp implements Test{
  5.               public void test(){
  6.                      System.out.println("test");
  7.               }
  8.         }

  9. public class Text3 {
  10.         
  11.         public static void main(String[] args) {
  12.                 Testp t=new Testp();
  13.                 t.test();
  14.         }

  15. }
复制代码
我想问下,interface不能被public修饰吗?
接口格式:[public]interface 接口名称 [extends父接口名列表]
public是默认的,为什么我写出来会报错?

11 个回复

倒序浏览
一个java文件中只能定义一个public类或者接口
另外,接口的权限有两个,一个是public,一个是默认权限(即不写public的情况)
所以public并不是接口的默认权限,接口里的方法才是默认public,这点楼主你要搞清楚
你把接口前面的public去掉就可以了
或者把接口定义在另一个java文件中


回复 使用道具 举报
张豪杰 发表于 2013-3-9 22:43
一个java文件中只能定义一个public类或者接口
另外,接口的权限有两个,一个是public,一个是默认权限(即 ...

他默认的是public,我写出来不是一个意思啊?
回复 使用道具 举报
朱玺 发表于 2013-3-9 22:44
他默认的是public,我写出来不是一个意思啊?

"他的默认是public"是指接口的权限就是public?
回复 使用道具 举报
张豪杰 发表于 2013-3-9 22:47
"他的默认是public"是指接口的权限就是public?

写出来接口也是public呀
回复 使用道具 举报
朱玺 发表于 2013-3-9 22:48
写出来接口也是public呀

interface A{}
public interface B{}
A接口是默认权限,B接口是public权限
B接口的权限比A接口的权限要大!!!
回复 使用道具 举报
默认是不带任何修饰,不是public
之所以不能用public修饰是因为一个.java文件中只能定义一个public类。
public修饰的类,类名与对应的.class文件名一致(用eclipse开发时要注意)
回复 使用道具 举报
不是这个意思,你运行下上面的程序,现在是不能通过的,但把接口前面的public去掉就可以运行了,我的意思是,默认是的权限是public,也就是相当于权限就是public,写出来不就也是public吗?为何写出来不能运行?
回复 使用道具 举报
朱玺 发表于 2013-3-9 22:59
不是这个意思,你运行下上面的程序,现在是不能通过的,但把接口前面的public去掉就可以运行了,我的意思是 ...

都说了,不写public出来,权限是默认权限,也就是default权限
写了public出来,才是public权限:L
回复 使用道具 举报
1:接口不声明访问类型,默认是包访问权限,是package的。就是说在包内可以访问,包外不能访问
2:一个java类文件中只能定义一个public类文件,而且要与文件名一至
3:你把接口前面的public去掉或着把public class Text3前面的去掉,或者把接口定义在另一个java文件中就可以了,希望帮到你
回复 使用道具 举报
张卫刚 发表于 2013-3-9 23:10
1:接口不声明访问类型,默认是包访问权限,是package的。就是说在包内可以访问,包外不能访问
2:一个java类 ...

谢谢了,问题已经解决了
回复 使用道具 举报
张豪杰 发表于 2013-3-9 23:00
都说了,不写public出来,权限是默认权限,也就是default权限
写了public出来,才是public权限 ...

兄弟谢谢了,问题已经解决了。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马