Java protected 与 default 区别

public,protected,private是Java里用来定义成员的访问权限的,另外还有一种是“default”,也就是在成员前不加任何权限修饰符。如: 
public   class   A{ 
    void   method(){}; 

method就属于default权限。 

这四个修饰符的访问权限如下表: 
----------------------------------------------- 
                        类内部     package内       子类         其他 
public             允许         允许                 允许         允许 
protected       允许         允许                 允许         不允许 
default           允许         允许                 不允许     不允许 
private           允许         不允许             不允许     不允许 
----------------------------------------------- 
之前看到很多次这张表,以为自己理解透彻,结果转头就忘记,最后还是做选择题,总是看见,下决心把这个弄清楚。

最迷糊的莫过于包内访问和子类访问:

1. 包内允许访问和子类允许访问的各自含义:

    a. 包类允许访问是指通过实例化类,来访问;

    b.子类允许访问的意思是能直接使用父类的变量。如果通过实例化父类访问,属于包类访问。

2. 对1理解之后,很自然的,

   a. 包外的子类可以直接使用父类的protected public 修饰的变量或者方法。

   b. 但是不能通过实例化类之后访问protected修饰的成员变量。

   c. 若某个子类A被调用,A继承的protected 变量或者方法对调用类A的外部不可见。

举个例子:https://blog.csdn.net/cgf1993/article/details/11926235

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值