在Java中,protected修饰符是一种访问控制修饰符,它用于限制类、变量、方法和构造器的访问范围。protected修饰符的作用如下:
当一个类的成员(变量或方法)被声明为protected时,它可以被同一个包中的其他类访问,也可以被不同包中的子类访问。
protected修饰符提供了一种介于public和private之间的访问级别。public成员可以在任何地方访问,而private成员只能在声明它们的类中访问。protected成员则允许子类访问,但不允许其他非子类访问。
protected修饰符有助于实现封装和代码复用。通过将类的某些成员声明为protected,可以确保只有子类能够访问这些成员,从而保护了类的内部实现细节。同时,子类可以利用这些受保护的成员来实现自己的功能,而无需重新编写相同的代码。
下面是一个简单的例子,演示了protected修饰符的用法:
// 父类
public class Parent {
protected String name;
protected void printName() {
System.out.println("Name: " + name);
}
}
// 子类,与父类在同一个包中
class Child1 extends Parent {
void accessParentMembers() {
name = "Child1";
printName();
}
}
// 子类,与父类在不同包中
package anotherPackage;
import myPackage.Parent;
class Child2 extends Parent {
void accessParentMembers() {
name = "Child2";
printName();
}
}
// 其他类,与父类在不同包中
package anotherPackage;
import myPackage.Parent;
class OtherClass {
void accessParentMembers(Parent parent) {
// 无法访问受保护的成员
// name = "OtherClass"; // 编译错误
// parent.printName(); // 编译错误
}
}
在这个例子中,Parent类的name变量和printName()方法被声明为protected,因此它们可以被同一个包中的Child1类访问,也可以被不同包中的Child2类访问。然而,OtherClass类无法访问这些受保护的成员。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。