thinking in java 之 public private protect

阅读了一下thinking in java 感慨颇多,基础还是不行。遂重新推倒彻底重学!


今天写的是关于访问权限的public private protect



1) public 完全可见

2) protect 本包和子类可见

3) default 本包可见

4) private 本类可见


权限由大到小


不过根据实际实验得知: 

第2条 本包可见,子类在本包也可见,不过并不是所有子类都可见,而是在同一个包下的子类可见在其他包下的子类就不可见了。

截图如下


public class PubClass {

    public class InnerPubClass{

    }

    private class PriClass{

    }

    protected class ProClass{

    }

    class DefClass{

    }

    public void pubFunc(){

    }

    protected void proFunc(){

    }

    void defFunc(){

    }

    private void priFunc(){

    }

}

PubSonClass 以及PubOuterSonClass 都为PubClass的子类,内部无具体实现


以下为pkg1中的main类



而pkg2中的main类 则出现标红(异常提醒)如下



通过已上截图发现,PubOuterSonClass为子类但不是和父类在同一包下调用内部方法或者内部类就会报错. 


可能原因是继承来的属性或者方法依然认为是父类的,故违反本包可见原则。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值