私有方法可以在java的类外部访问

hem*_*nth 3 java

我在网络bean中尝试了以下代码我期待错误,但我没有得到任何错误

class B {

    private void method() {
    }

    public static void main() {
        B b = new B();
        B c = new C();
        b.method();
        c.method();
    }
}

class C extends B {
}
Run Code Online (Sandbox Code Playgroud)

c.method()试图访问该方法时它应该显示错误,但在NetBeans它没有显示.请告诉我是什么错.

Jus*_*ner 6

您定义方法的方式是C.method()从内部调用B.main().由于方法是私有的B,因此该方法在B.main()内部是可见的,即使该对象是C继承自的类型B.

  • @atamanroman私有方法是继承的,它们只是不可见. (2认同)
  • **超类中的私有成员**子类不继承其父类的私有成员.但是,如果超类具有访问其私有字段的公共或受保护方法,则子类也可以使用这些方法.嵌套类可以访问其封闭类的所有私有成员 - 包括字段和方法.因此,子类继承的公共或受保护嵌套类可以间接访问超类的所有私有成员.(http://download.oracle.com/javase/tutorial/java/IandI/subclasses.html) (2认同)