Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
isn';t protected在Java中应该只能由子类访问吗?_Java_Oop_Inheritance - Fatal编程技术网

isn';t protected在Java中应该只能由子类访问吗?

isn';t protected在Java中应该只能由子类访问吗?,java,oop,inheritance,Java,Oop,Inheritance,我真的很惊讶,这段代码没有给我任何编译错误 class A { protected int a; } class B { void b() { A a = new A(); a.a = 4; } } 不,受保护对同一包中的其他类可见 要记住的是,访问修饰符是为了避免用太多的信息打扰他人。如果您在同一个包中工作,那么您已经获得了信息,如果您愿意,可以使用它。injava protected variable在包内和包外都可以访问,但是可

我真的很惊讶,这段代码没有给我任何编译错误

class A {
    protected int a;
}
 
class B {
    void b() {
        A a = new A();
        a.a = 4;
    }
}

不,受保护对同一包中的其他类可见


要记住的是,访问修饰符是为了避免用太多的信息打扰他人。如果您在同一个包中工作,那么您已经获得了信息,如果您愿意,可以使用它。

injava protected variable在包内和包外都可以访问,但是可以使用继承。如果来自包外的任何其他类尝试访问这些变量,编译器将在编译时抛出错误。 你可以详细阅读

protected
将可见性设置为相同的包级别。如果类A和类B在同一个包级别,这是可以的。我投票结束这个问题,因为最好通过阅读语言规范/文档来回答这个问题。