首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >访问控制protected是不同包中对子类可见,什么意思?

访问控制protected是不同包中对子类可见,什么意思?

作者头像
马克java社区
修改2021-03-24 10:44:58
修改2021-03-24 10:44:58
8110
举报
文章被收录于专栏:java大数据java大数据

2.2 以下例子说明:protected是不同包中对子类可见,对非子类不可见。  

例1.2.2.a:---本例为正常用法。

package p1;

public class A {

    protected int i;

    protected void printIProtected() {

        System.out.println("i=" + i);

    }

}

package p2;

import p1.A;

class B extends A {

    void printIInB() {

        System.out.println("in B i=" + i);//protected是不同包中对子类(Test)可见,马 克-t o-w i n

        printIProtected();

    }

}

public class Test  {

    public static void main(String[] args) {

        A a=new A();

   //     a.i=7;//报错, 注意这里不能直接用

 //       a.printIProtected();//报错, 注意这里不能直接用

        B b = new B();

 //     b.i = 10;//报错,Test不是A子类,非子类不能访问protected

 //     b.printIProtected();//报错,Test不是A子类,非子类不能访问protected

        b.printIInB();

    }

}

 

结果:

in B i=0

i=0

 

 

例1.2.2.b:---本例为非正常用法,通常不直接访问protected方法。比如b.printIProtected();

 

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 {

    void printIInB() {

        System.out.println("in B i=" + i);//protected是不同包中对子类(Test)可见,马 克-t o-w i n

        printIProtected();

    }

更多请见:https://blog.csdn.net/qq_44639795/article/details/103116872

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档