java中的受保护类
这是一个场景: 包1具有java中的受保护类,java,package,protected,Java,Package,Protected,这是一个场景: 包1具有公共类机器,该机器具有受保护变量受保护的int-speed=3 我还有一个包裹, 包2,它有公共类车,它是机器类的子类,我们还有一个公共类苹果,它有主要方法 我的问题是: 为什么可以从Car类方法/构造函数内部访问speed,但不能从APPLE类中存在的主方法创建的Car类实例访问speed 我是java新手,请帮助…该类的受保护成员仅可由该类的派生类访问,无论该类从何处启动 您可以认为public/protected/private成员不仅提供了所需的封装,而且还规定了
公共类机器
,该机器具有受保护变量受保护的int-speed=3代码>
我还有一个包裹,
包2,它有公共类车
,它是机器类的子类,我们还有一个公共类苹果
,它有主要方法
我的问题是:
为什么可以从Car类方法/构造函数内部访问speed,但不能从APPLE类中存在的主方法创建的Car类实例访问speed
我是java新手,请帮助…该类的受保护成员仅可由该类的派生类访问,无论该类从何处启动
您可以认为public/protected/private成员不仅提供了所需的封装,而且还规定了它们可以访问的层次结构级别
公共成员我们可以访问所有人吗
受保护的成员可以由其自身及其子成员访问
私有成员只能自己访问
为了回答你的问题
为什么速度可以从车内类方法/构造函数中访问
这是因为速度被标记为protected,根据定义,受保护的成员可用于类及其子类主体,但不能从外部使用。因为汽车是机器的子类,所以速度可以从汽车内部获得
但不是从APPLE类中存在的main方法创建的Car类实例
在这里,您试图从类/子类主体外部访问speed作为公共变量,因此无法访问
请查看更多信息。谢谢,但我们可以从像……….这样的实例访问受保护的变量。。。。。。。。。。。。。。。。。。。。。ClassB Obj=新的ClassB();对象k=3///在这里,我从类/子类主体外部访问int k作为公共变量。在这里,所有类都在同一个包中…int k是ClassB父类的受保护变量。您不能这样做。从类外部访问“k”的唯一方法是为其使用公共setter方法。