微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Java中的受保护的类

如何解决Java中的受保护的类

这是场景:

数据包1的Public class Machine具有受保护的变量protected int speed=3;

我还有另一个包裹, 程序包2的Public class Car是Machine类的子级,而我们的Public class Apple则具有main方法

我的问题是: 为什么可以从Car类的方法/构造函数访问速度,而不是从从Appple类中的main方法创建的Car类的实例访问速度

我是Java新手,请帮忙...

解决方法

该类的受保护成员只能由该类的派生类访问,而不论该类是从何处发起的。

您可以认为公共/受保护/私有成员不仅提供必需的封装,而且还规定了可访问它们的层次结构级别。

我们可以公开访问所有公共成员

受保护成员本身及其子级都可以访问

私有成员只能自己访问

,

要回答您的问题,

为什么在Car类方法/构造函数中可以接受速度?

这是因为 speed 被标记为受保护的,并且根据定义,该类及其子类主体可以使用受 protected 的成员,但不能从外部使用。由于Car是机器的子类,因此可以从 car 内部访问速度。

,但不是从通过Appple类中存在的main方法创建的Car类的实例中完成吗?

在这里,您试图从类/子类主体外部以公共变量的形式访问速度,因此无法访问。

请检查section 6.6.2 of the JLS了解更多信息。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。