关于protected联合跨包的问题
Topic source再补充一点就是,还要结合overide protected方法来看,这样应该就全面了
我把我的实验写在了这里:https://github.com/BinchaoPeng/JavaLearn/tree/master/src/protectedTest
- 1
再补充一点就是,还要结合overide protected方法来看,这样应该就全面了
我把我的实验写在了这里:https://github.com/BinchaoPeng/JavaLearn/tree/master/src/protectedTest
PBC
首先porotected是关于子类继承方面的问题,即子类及子类的子类可以访问父类的protected方法。
其次跨包是public和default的问题,public允许跨包,default默认是同一包下。
从写代码的实际操作方面来看,我们会发生以下情况及他们的联合:
1. 继承发生在不同包或同一包
2. 调用类去生成实例在不同包或同一包(考虑同一包下,在子类中生成子类实例并调用protected方法和在其他类中生成子类实例并调用protected方法)
3. 实例的引用可能是父类对象
但总体可以看:
一、包层面
跨包了,则不能访问非public方法,因此访问不到protected方法,这与继承无关
二、继承层面
只要在继承这条链路上才考虑protected,具体情况是(同一包的前提下):
在子类中生成子类实例并调用protected方法,可以调用
在其他类中生成子类实例并调用protected方法,不能调用,除非override了(因为override表示他自己写了这个方法)
欢迎大家讨论指正,刚想到的理解思路,可能有纰漏错误之处