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

标签 java

我有以下两个类(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/

相关文章:

java - 如何检查矩阵是否对称?

java - 使用 lambda 将文本文件转换为 Map<String, List<String>>

java - 安卓 OpenGL ES : How do you select a 2D object?

java - Java 中未捕获 try-catch-block 中的异常

java - 如何逐步计算字符串数组中的字符数? -Java

java - 单个文件中的多个接口(interface)

JFrame 上的 Java 圆角?

java - 如何避免 java 中的重复枚举值?

java - Apache Commons Net FTP 正在上传损坏的文件

java - 手动强制垃圾收集