java在父类中创建父类型的子类型对象是可以调用父类的私有方法的吗?
如图:父类有一个私有方法f(),然后再父类中创建一个父类型的子类对象student,然后用子类对象student调用f()方法。
我想问一下,在父类中创建父类型的子类型对象是可以调用父类的私有方法的吗?jvm是如何工作的嘞?为什么子类对象可以调用父类的私有方法?
java在父类中创建父类型的子类型对象是可以调用父类的私有方法的吗?
如图:父类有一个私有方法f(),然后再父类中创建一个父类型的子类对象student,然后用子类对象student调用f()方法。
我想问一下,在父类中创建父类型的子类型对象是可以调用父类的私有方法的吗?jvm是如何工作的嘞?为什么子类对象可以调用父类的私有方法?
实际上是不可以的 你这里的情况是因为你向上转型了 Human student = new Student(),如果是Student student = new Student();的话 那就不行啦.
实际上在内存中,虽然你new的是Student对象,但是前面是Human,地址就指向了Human, 这种情况只能调用父类有的方法,而不能调用子类自己扩展的方法