You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Getter方法未返回对象构造函数中设置的值问题排查

问题解决:子类实例化后继承方法返回错误值

你的问题出在Tiger子类的构造函数调用了父类的无参构造,导致传入的名字参数没有传递给父类的带参构造,最终父类的nameOfAnimal被初始化为默认的"Unknown Animal"。

修正后的Tiger构造函数代码

public Tiger(String nameOfAnimal){
    super(nameOfAnimal); // 调用父类带参构造,将传入的名字传递给父类
}

原理说明

当你执行Tiger tigerObject = new Tiger("Tiger")时:

  1. 传入的"Tiger"会被传递到Tiger构造函数的参数中
  2. 通过super(nameOfAnimal)调用父类的带参构造,父类会将nameOfAnimal赋值为你传入的字符串
  3. 后续调用getNameOfAnimal()时,就能返回正确的"Tiger"

如果需要在子类构造中添加额外的初始化逻辑,也可以保留扩展空间:

public Tiger(String nameOfAnimal){
    super(nameOfAnimal);
    // 这里可以添加Tiger类特有的初始化代码
}

内容的提问来源于stack exchange,提问作者Joseph Loomis

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 10:27:34