如何解决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 举报,一经查实,本站将立刻删除。