猿问

关于Java中的this和super的使用

先贴代码:

这个地方输出的结果是:
a=1
b=0
----
a=4
b=0

疑问就是:
在使用this()调用了Par()的无参构造函数之后,使用了this.Print()进行输出,结果他还输出了b的值,疑惑有两个:1、这个地方b不是还没有被赋值吗?2、这个地方调用的Print()应该是父类的Print()啊,那么按理来说应该不会输出b的值啊,难道在子类中重写了之后调用的都是子类的Print()?
刚学Java,求大神解惑

紫衣仙女
浏览 522回答 1
1回答

米脂

this实际上是Demo的类指向,可以在父类的构造函数println一下this看一下,对于父类的构造函数,就是上面父类的this(),在父类中调用时会认为是调用父类的构造方法,对于普通函数,会认为是子类this的函数。所以this()会给a新赋值,而this.print()会调用子类的print()
随时随地看视频慕课网APP

相关分类

Java
我要回答