java protected 方法可访问性

标签 java oop

在下面的代码中,Consumer类可以访问Parent类的protected方法。由于Parent和Consumer类之间没有关系,怎么可能呢?请解释

class Parent {
    public void method1(){
        System.out.println("PUBLIC METHOD");
    }
    private void method2(){
        System.out.println("PRIVATE METHOD");
    }
    protected void method3(){
        System.out.println("PROTECTED METHOD");
    }
}

public class Consumer {
    public static void main(String[] args){
        Parent parentObj = new Parent();
        parentObj.method1();
        //parentObj.method2();
        parentObj.method3();
    }
}

谢谢

最佳答案

protected 表示:同一个包或通过继承。由于您的类都在 default 包 中(在现实生活中不推荐),protected 启用访问。顺便说一句:如果你尝试测试 java 访问控制,你忘记了 default access (default access = no modifier = package private)。

另一方面,

private 访问意味着:除了这个特定的类(以及仍然是宿主类的成员的非静态内部类)之外的任何地方都可以访问。

关于java protected 方法可访问性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3058976/

相关文章:

java - 我无法将我的用户名和密码从一个 jframe 转移到另一个 jframe

java - Java中如何将字符串从一个方法传递到另一个方法

Python在读取文件时创建对象

oop - 接口(interface)使用问题

java - return 语句 - finally block 未正常完成

javax.transaction.Transactional 与 org.springframework.transaction.annotation.Transactional

c++ - 每个派生类的静态变量

php - SQL 查询还是面向对象的设计?

java - 参数化策略模式

java - 数据在类之间无法正确传输;结果引发 NullPointerException