属性执行的问题

来源:9-4 Java 中的继承初始化顺序

BUZHIDAO666

2018-07-22 11:13

为什么在构造方法里写int age=20;没有报错,最后输出结果为:Animal age 10

写回答 关注

3回答

  • 慕桂英9226491
    2019-07-12 11:30:42

    根据你的现象,你构造方法中的int age=20,虽然没有报错,但是这个变量并没有被使用。

    而你从主方法中使用对象名.变量名的方式调用的是你Animal类中的成员变量。

    也就是说你在构造方法中写int age=20,这种写法并不是覆盖Animal类中的age的值,而是在方法中重新写了一个age变量。

    我的回答仅供参考,不一定正确,毕竟我也是初学的小菜鸟。

    慕桂英922...

    再次补充一下,你在构造方法中写int age=20,其实应该属于方法中的局部变量,而在Animal类中写的int age =10 是成员变量,局部变量只在方法中有效,,你从主方法中调用的只是animal.age,是调用是的类中的成员变量age,

    2019-07-12 11:34:51

    共 1 条回复 >

  • 与蝶共舞
    2018-07-30 18:27:57

    可能是因为你后面参数覆盖了之前的

  • 熊熊熊熊熊123
    2018-07-22 11:28:42

    你说的太抽象的,最好能附上代码。可能是因为你后面参数覆盖了之前的


Java入门第二季 升级版

课程升级!以终为始告别枯燥,在开发和重构中体会Java面向对象编程的奥妙

530653 学习 · 6091 问题

查看课程

相似问题