java 在父类中创建父类型的子类型对象是可以调用父类的私有方法的吗?

java在父类中创建父类型的子类型对象是可以调用父类的私有方法的吗?

如图:父类有一个私有方法f(),然后再父类中创建一个父类型的子类对象student,然后用子类对象student调用f()方法。

图片说明

我想问一下,在父类中创建父类型的子类型对象是可以调用父类的私有方法的吗?jvm是如何工作的嘞?为什么子类对象可以调用父类的私有方法?

实际上是不可以的 你这里的情况是因为你向上转型了 Human student = new Student(),如果是Student student = new Student();的话 那就不行啦.
实际上在内存中,虽然你new的是Student对象,但是前面是Human,地址就指向了Human, 这种情况只能调用父类有的方法,而不能调用子类自己扩展的方法

私有方法只能被类自己调用,这是 Java 的权限控制的。
测试方法,在外面重新定义一个类,创建这里的类的实例,然后用对象 . 操作就能看到方法列表了。