课程
/后端开发
/Java
/Java入门第二季 升级版
为什么我在父类的构造方法里int了一个age等于20 跑完后显示的是10 把int去掉 就变成20了
2016-10-13
源自:Java入门第二季 升级版 9-4
正在回答
是这样子的、在构造方法里面的age前面加上Int,就已经相当于重新定义一个变量了,而没有int的时候,只是重新赋值,并且重新定义的这个age变量,也只作用于这个构造方法的范围里面,出了这个范围后,调用的就是类的age了。所以,才会出现你所说的,在构造方法里面给age加Int时出现,子类调用的age还是10,不加时是20。还有什么不明白的,可以继续讨论。
望采纳,谢谢。
好脾氣先森dian 提问者
成员变量和局部变量可以重名,所以,父类里面有一个成员变量age,在构造方法里int age这就是局部变量,作用范围就在这个构造方法里
太感谢了!正好我也有这个疑问
把代码粘出来看一下
奔波儿霸1 回复 好脾氣先森dian 提问者
好脾氣先森dian 提问者 回复 奔波儿霸1
举报
课程升级!以终为始告别枯燥,在开发和重构中体会Java面向对象编程的奥妙
4 回答为什么构造方法到这里变成了一个类???
4 回答为什么我把父类无参的构造方法注释了,子类无参的构造方法没有显示错误?
4 回答为什么把父类的变量改成静态变量(父类中写有带参构造方法),子类中无参的构造方法是对的
1 回答`为什么我把父类的无参构造方法注释了,子类的无参构造方法还会执行?
2 回答请问如果父类只有有参的构造方法,那么子类的构造方法中就隐性调用了父类的构造方法。