gpt4 book ai didi

java - 我如何能够从不继承自该类的类访问 protected 方法?

转载 作者:行者123 更新时间:2023-12-01 16:58:32 29 4
gpt4 key购买 nike

public class Doubt1{
public static void main(String[] args){
Manager m1 = new Manager(25000);
Manager m2 = new Manager(25000);``

System.out.println(m1.getSalary(250000) + " " + m2.getSalary()); //how is m1.getSalary working when getSalary(int) is protected in Employee class
}
}

class Employee{
protected int salary;

public Employee(int s){
salary = s;
}

protected int getSalary(int s){
return salary + s;
}
}

class Manager extends Employee{

public Manager(int s){
super(s);
}
public int getSalary(){
return salary;
}
}

我在经理类中重载了 Employee 类的 getSalary 方法。 Employee 类的 getSalaray(int) 方法具有 protected 访问权限,因此只能从 Manager 类访问。但是,当我调用 m1.getSalary(25000) 时,为什么编译器不像我将方法声明为私有(private)时那样提示“员工类中的 protected 访问”?或者 protected 访问修饰符是不是我想象的那样?

最佳答案

protected 访问修饰符允许比 private 更多形式的访问。由于该方法位于同一个包或子类中,因此允许访问。

更多信息请点击 http://docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html

关于java - 我如何能够从不继承自该类的类访问 protected 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29706635/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com