这个问题挺绕,查了网上两种说法都有,自己有研究验证了一下,放出关键图。
new子类就会先调用父类构造方法,这时在某个地方就会有这些变量和方法,然后再增加子类方法。也就是说同名的变量其实在父类区域里。这时this.变量 和 super.变量 是同一个东西。得出这样的结论我也奇怪,但确实在其它问题上有了更好的理解,比如父类中的private变量在被继承后是实际存在的,就在小方框里,只不过外部不能调用。
这时也并没有生成父类对象,可以getClass验证。
这个问题挺绕,查了网上两种说法都有,自己有研究验证了一下,放出关键图。
new子类就会先调用父类构造方法,这时在某个地方就会有这些变量和方法,然后再增加子类方法。也就是说同名的变量其实在父类区域里。这时this.变量 和 super.变量 是同一个东西。得出这样的结论我也奇怪,但确实在其它问题上有了更好的理解,比如父类中的private变量在被继承后是实际存在的,就在小方框里,只不过外部不能调用。
这时也并没有生成父类对象,可以getClass验证。