gpt4 book ai didi

java - 从另一个包调用 protected 方法?

转载 作者:行者123 更新时间:2023-12-02 00:56:25 47 4
gpt4 key购买 nike

package1:
public class A{
protected void Display(){
System.out.println("Hello");
}
}

package2:
import package1.*;

class C extends A{}

public class B{
public static void main(String[] args){
C var = new C();
var.Display(); //error
}
}

CA 的子类。访问修饰符 protected 表示同一个包或通过继承(可以通过子类从另一个包访问)。但是当我尝试从另一个包调用 protected 方法时。没成功。

最佳答案

protected对子类可见。如果该类本身不是 A 的子类,它无权访问该方法(即该类不能调用或引用该方法)。

B不是 A 的子类。即使它调用 protected 方法的对象是 A 的实例的子类,B本身无权访问该方法,因为它不是 A 的子类.

换句话说,调用Display()C 内有效,不在 B 中通过 C 的实例。即使从内部 C ,仅允许在 C 上使用自己的实例。

关于java - 从另一个包调用 protected 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61317210/

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