在Java中,protected是一个访问修饰符,它用于控制类、变量、方法和构造函数的访问级别。当一个类的成员被声明为protected时,它可以被同一个包中的其他类以及不同包中的子类访问。
以下是protected访问修饰符的使用方法:
在类中使用:
protected不能用于修饰顶层类(即非内部类)。它只能用于修饰类的成员(如变量、方法、构造函数等)。在变量中使用:
public class Parent {
protected int protectedVar = 10;
}
public class Child extends Parent {
public void accessProtectedVar() {
System.out.println(protectedVar); // 可以直接访问父类的protected变量
}
}
public class Parent {
protected void protectedMethod() {
System.out.println("This is a protected method.");
}
}
public class Child extends Parent {
public void callProtectedMethod() {
protectedMethod(); // 可以直接调用父类的protected方法
}
}
// 在com.example.parent包中
package com.example.parent;
public class Parent {
protected void protectedMethod() {
System.out.println("This is a protected method.");
}
}
// 在com.example.child包中
package com.example.child;
import com.example.parent.Parent;
public class Child extends Parent {
public void callProtectedMethodFromDifferentPackage() {
protectedMethod(); // 可以访问不同包中的父类的protected方法
}
}
需要注意的是,protected访问修饰符允许子类访问父类的成员,但不允许其他非子类访问。这提供了一种在类之间共享代码的方式,同时保持了封装性。
另外,如果一个类的成员被声明为protected,并且该类没有被子类继承,那么这个成员仍然可以被同一个包中的其他类访问。但是,如果该类被子类继承,并且子类位于不同的包中,那么子类只能通过继承来访问这些protected成员,而不能直接通过父类的引用来访问。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。