我从Core Java,第I卷 - 基础知识(第8版)>第5章:继承>'受保护的访问'一节(页221)一书中学到了以下内容.
但是,有时候,您只想将方法限制为子类,或者不太常见,允许子类方法访问超类字段.在这种情况下,您将类功能声明为protected.例如,如果超类Employee将hireDay字段声明为protected而不是private,则Manager方法可以直接访问它.
但是,Manager类方法只能查看Manager对象的hireDay字段,而不能查看其他Employee对象.这种限制是为了使您不能滥用受保护机制并形成子类只是为了获得对受保护字段的访问权限.
我编写了以下代码来测试它.
class Employee
{
protected String name;
public Employee(String name) {
this.name = name;
}
}
class Manager extends Employee
{
public Manager(String name) {
super(name);
}
public void peekName(Employee e) {
System.out.println("name: " + e.name);
}
}
class Executive extends Employee
{
public Executive(String name) {
super(name);
}
}
public class TestProtectedAccess
{
public static void main(String[] args) {
Employee e = new Employee("Alice Employee");
Manager m = new Manager("Bob Manager"); …Run Code Online (Sandbox Code Playgroud)