thinking in java 之 public private protect

来源:互联网 发布:品牌授权网络销售合同 编辑:程序博客网 时间:2024/06/01 12:38

阅读了一下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