JAVA中protected的作用是什么
发布时间:2025-05-13 02:22:15 发布人:远客网络
一、JAVA中protected的作用是什么
1、类NewObject中有protected修饰的方法或者属性,则:
2、可在同一个包里的子类中实例化NewObject类获得对象,然后可用该对象访问protected修饰的方法或者属性,即.操作访问。
3、可在同一个包里的非子类中实例化NewObject类获得对象,然后可用该对象访问protected修饰的方法或者属性。
4、可在同一个包里的非子类中实例化NewObject类的子类(该子类和NewObject类在同一个包中)获得对象,然后可用该对象访问protected修饰的方法或者属性。
5、可在同一个包里的NewObject类的子类中调用NewObject类中protected修饰的方法或者属性,即protected修饰的方法和属性可被同一个包中的子类继承。
6、可在非同一个包里的子类中实例化NewObject类获得对象,但无法用该对象问protected修饰的方法或者属性。
7、可在非同一个包里的非子类中实例化NewObject类获得对象,但无法用该对象问protected修饰的方法或者属性。
8、可在非同一个包里的非子类中实例化NewObject类的子类(该子类和NewObject类不在同一个包中)获得对象,但无法用该对象问protected修饰的方法或者属性。
9、可在非同一个包里的NewObject类的子类中调用NewObject类中protected修饰的方法或者属性,即protected修饰的方法和属性可被不同一个包中的子类继承。
二、JAVA中protected的作用
1、在Java中,访问修饰符对于类的成员具有重要影响,其中public、private和protected各自扮演着不同的角色。
2、首先,public成员是对所有类开放的,无论是同一包内的还是其他包的,任何人都可以直接访问和调用,就像公有的财产一样,无任何权限限制。(public:对所有用户开放,包括其他包中的类)
3、相反,private成员则是一种严格的保护,仅限于类内部使用,即使是类的子类或者朋友,都不可以直接访问。(private:仅限于类内部,对外部封闭)
4、而protected修饰的成员,对于同一个包内的类和子类来说,它们可以像public一样使用,没有任何限制。但在其他包中,protected就等同于private,只有包内的类和子类能访问。(protected:对包内和子类公开,对外部包中的类则是私有的)
5、总结来说,Java的访问修饰符通过控制访问权限,确保了代码的封装和信息的隐藏,有助于维护类的结构和数据安全。(保护级别决定成员的可见性范围,公共开放,私有保护,而受保护的允许在特定范围内自由使用)
三、Java private protected各种区别
private:私有成员仅在定义类内部可访问,继承时子类无法直接访问。
default(无修饰符):成员在默认访问级别时,只有同一包内的类可以访问。子类如果在同一个包中可以访问,否则不能。
protected:受保护的成员可以被同一包内的所有类以及不同包中的子类访问。
public:公共成员对任何其他类开放访问,无论子类是否在同一包中。
在Book类中添加受保护方法和默认访问字段展示影响
public Book(String name, int num, double price, boolean inStock){
protected void printDetails(){
System.out.println("Name:"+ name+", Num:"+ num+", Price:"+ price+", In Stock:"+ inStock);
//受保护的方法可以被不同包中的子类访问
在这个例子中,printDetails方法被标记为protected,这意味着任何继承自Book的子类都可以访问此方法,即使它们位于不同的包中。而category字段无访问修饰符,因此默认为包级私有访问,仅允许同一包中的类访问,包括Book的子类(只要它们位于同一包中)。