gpt4 book ai didi

Java:当我使用extends关键字实现多重继承时,在不同包的不同类中无法访问 protected 方法

转载 作者:行者123 更新时间:2023-12-01 10:04:14 27 4
gpt4 key购买 nike

我有以下两个类(class):测试.java

package com.test.app;

public class Test {

public int a=10;
protected void testFunc() {
// TODO Auto-generated method stub
System.out.println("Test class--> testFunc");
}
}

另外一个是主程序.java包 com.test.main;

import com.test.app.Test;


public class Main extends Test {


public static void main(String[] argv) {

System.out.println("Main Method");

Main main =new Main();
main.testFunc(); // No Error


Test test = new Test();
test.testFunc(); // Error

}

}

类型 Test 中的方法 test.testFunc() 不可见

最佳答案

Test#testFunc() 方法只能由子类(如 Main)和同一包中的类(com.test.应用程序)。

这就是为什么声明

main.testFunc();

编译正常(因为MainTest的子类,并且允许调用testFunc())。

<小时/>

但是这个声明

test.testFunc();

无法编译,因为Main类所在的包不是com.test.app,而是com.test.main.

更多信息:

关于Java:当我使用extends关键字实现多重继承时,在不同包的不同类中无法访问 protected 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36568941/

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