我今天刚刚注意到这种行为 - 很奇怪,我很确定在java中你只能访问继承链上游的受保护方法,因为反过来会违反封装。
这种行为在语言中是否有原因?
答案 0 :(得分:1)
此链接可能对您的答案有所帮助:
我希望它可以帮到你。
答案 1 :(得分:1)
我发现在父级中定义的一个方法只需要根据扩展类类型更改其功能的一小部分时,它很有用。您可以在父级中调用抽象方法,并且根据需要使用该方法中子方法的定义来更改其功能。
我还要补充一点,兄弟类也可以访问彼此的受保护属性和方法,只要它们在父类中声明(这可以是抽象的)。
答案 2 :(得分:0)
这在Java中也是允许的。但是,Java中可能允许这样做,因为受保护也被认为是包级别范围,而不仅仅是降级为继承链中的访问权限。
答案 3 :(得分:0)
protected != private