gpt4 book ai didi

java - 在子类中调用父方法返回空值

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:46:41 25 4
gpt4 key购买 nike

我试图通过使用父方法但从子类中显示父类的变量值。

public class A {
public static void main(String[] args) {
Parent p1 = new Parent();
p1.input();
}
}
class Parent {
private String name;
public void setName(String newName) {
name = newName;
}
public String getName() {
return name;
}
public void input() {
String q = "hi";
setName(q);
Child c1 = new Child();
c1.input();
}
}
class Child extends Parent {
public void input() {
System.out.print(super.getName());
}
}

我期待它输出 hi 但输出是 null。我尝试过的事情:

  1. 在子类中使用 getName() 而不是 super.getName()
  2. 使用 Parent p2 = new Parent(); 然后在子类中使用 p2.getName()
  3. 在父类中使用 protected String name;

这些似乎都不起作用;他们最终仍然输出 null 。帮忙?

最佳答案

您正在父对象中创建子对象,并且正在设置当前父对象的名称字段,但不是 Child 的 Parent,这意味着您创建了多个 Parent 对象——一个 name 字段被设置,另一个(child 的父对象)其 name 字段从未设置,但被测试。

顺便说一下,父类不应该做这种事情。它应该是 child “不可知论者”。

关于java - 在子类中调用父方法返回空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54725607/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com