为什么无法使用其子类中的父引用访问一个包中父类的受保护方法这是在不同的包装。 [A.java] [[]] [ 1] [1]] 2为什么在一个包中的父类的受保护方法不能使用其子类中的父引用在不同包中访问
0
A
回答
0
保护范围在包内。即使你有一个类的实例,你也无法从另一个包中访问它。从Oracle documentation
Modifier Class Package Subclass World
public Y Y Y Y
protected Y Y Y N
no modifier Y Y N N
private Y N N N
0
其
范围表按照惯例 - 这就是protected
定义做。子类中的受保护成员只能通过继承。别无退路。
让我们假设我们可以使用父类实例访问位于不同包中的子类中的受保护成员。
现在,你将如何区分你的孩子 - 如果成员被宣布为public
或protected
?另外,如果它可以使用父实例访问,那么为什么只从子类访问它?它应该可以在任何地方使用父类实例进行访问。
我希望,如果你问自己这些问题 - 这一切都将开始有意义。
相关问题
- 1. 保护不能访问不同的包子类为什么?
- 2. 为什么受保护的方法不能从子类访问?
- 3. 为什么不能在子类中看到父类的方法?
- 4. 要访问子类中的父类的受保护的字段
- 5. 为什么我不能从Java中的另一个包中的继承类调用受保护的方法?
- 6. 为什么在同一个包中使用继承无法访问受保护的clone()方法
- 7. 在其他包中访问受保护的方法?
- 8. 在Java中,为什么可以在同一个包中从类之外访问受保护的成员?
- 9. 为什么在子类中有一个与父类中签名相同的静态方法是不可能的?
- 10. 为什么父类可能不受保护? (JAVA)
- 11. Java - 受保护的方法不能从子类访问
- 12. 为什么类的保护方法不能通过在子类中创建其对象来访问?
- 13. 为什么包保护方法在同一个包中不可见?
- 14. 由不同包中的类继承受程序包保护的方法
- 15. 从父类访问受保护的方法
- 16. 父类包可以从java的子包类中访问吗?
- 17. 从子类外部访问父类的受保护的方法(使用反射或任何可能工作的)
- 18. 派生类不能访问基类的受保护方法
- 19. 如何在同一个包中但在不同的jar中访问父类的包本地字段?
- 20. 超类的受保护变量不可见于不同包中的子类
- 21. 在Java中,不能从子类访问受保护的超类的成员
- 22. 如何在C#中使用不同方法名称访问父类中的子类方法
- 23. 为什么父类的静态方法隐藏在子类中?
- 24. 为什么受保护的属性可以被同一包中的其他类访问
- 25. 为什么在父类中有一个子方法必须使用引用子类的对象的父类引用来调用它?
- 26. 在ActiveSupport中访问包含类的受保护常量::关注
- 27. 受保护的成员不能在派生类中访问
- 28. 无法访问类中受保护的最终同步方法
- 29. 为什么我们不能使用超类的引用变量来访问其子类的方法(在超类中不可用的方法)?
- 30. 无法访问指针的受保护的int变量父类
看看这个备忘单:http://stackoverflow.com/a/33627846/276052 – aioobe