黑马程序员技术交流社区

标题: 关于接口的一些问题 [打印本页]

作者: Yaphets    时间: 2013-12-19 15:04
标题: 关于接口的一些问题
public class Main {
        public static void main(String[] args) {
                Some s=new SomeImpl();
                s.doSome();
        }
}
interface Some{
        protected  void doSome();
}
class SomeImpl implements Some{
        public void doSome(){
                System.out.println("做一些事");
        }       
}
这个 doSome();方法用的是protected修饰的,显示报错,。那为什么程序在eclipse里面运行可以输出“做一些事”?
作者: 刘松703    时间: 2013-12-19 15:13
可能是SomeImpl在实现接口的doSome();
方法权限是够的,只是 protected  void doSome();
这样写不规范,但能编译通过
作者: taxue0504    时间: 2013-12-19 15:39
是不是这种情况eclipse里面运行时Some接口被重写了doSome()
作者: 四五六七八    时间: 2013-12-19 15:56
接口里面的方法默认public ,他是一点要被实现的,你使用protected修饰 这肯定是不行的,如果别的包想实现它也没法实现

对于eclipse输出适应为他调用的是对象里面被重写的方法
作者: ┾——黑马    时间: 2013-12-19 16:10
接口里面的方法和常量默认的都是public的,你不加也是.接口就是为了扩展程序的功能用的,所以是public.




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