java中为什么接口中的属性和方法都默认为public?

4)为什么接口中的属性和方法都默认为public?Sun公司当初为什么要把java的接口设计发明成这样? 【新手可忽略不影响继续学习】
答: 如上所述,马克-to-win:既然接口强于抽象类能胜任作为和外部系统打交道的合同。换句话说,一般来讲和外部系统打交道,自然考虑用“接口”。“外 部”二字自然让我们做出如下结论:属性和方法都应默认为public。马克-to-win:举例假设方法或属性默认为protected,他的子类也可以 为protected,既然不是public,就一定存在一定的情况,正常访问这些属性和方法会引起错误。(马上跟着一个例子)因为是和外部系统打交道, 存在很大的未知性,马克-to-win:我并不知道未来外部别人怎么用我们的接口,所以尽量少给别人设置障碍(少添点堵),就设置权限为public,出 于这种考虑,Sun公司一开始就规定,接口属性和方法默认就为public。

例1.6.1:
以下例子,假如A实现IA接口,IA接口里面有printIProtected,这个方法是protected。

package p1;
public class A {
    protected int i;
    protected void printIProtected() {
        System.out.println("i=" + i);
    }
}

package p2;
import p1.A;
public class Test extends A {
    public static void main(String[] args) {
        A a=new A();

。。。。。。。。。。。。。。。。。
详情请进:http://www.mark-to-win.com/JavaBeginner/JavaBeginner4_web.html#InterfaceIsPublic
阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页