gpt4 book ai didi

java - 多态性:方法改变,但参数值不变

转载 作者:行者123 更新时间:2023-12-02 19:19:03 25 4
gpt4 key购买 nike

我运行了以下代码:

public class Cycling {

public static void main(String[] args) {

Cycle unicycle = new Unicycle();
System.out.println("Unicycle name: " + unicycle.name);
unicycle.ride();
}
}

class Cycle {
public String name = "cycle";
public void ride() {
System.out.println("Ride cycle!");
}
}

class Unicycle extends Cycle{
public String name = "unicycle";
public void ride() {
System.out.println("Ride unicycle!");
}
}

我期望这个输出:

独轮车名称:unicycle

骑独轮车!

我得到了这个输出:

独轮车名称:cycle

骑独轮车!

方法已成功更改,但参数值未更改。有人可以解释一下为什么吗?

最佳答案

你的方法是多态的,你的字段不是——因为字段不是多态的。

您当前有 2 个同名字段,其中一个字段遮蔽了另一个字段。当你这样做时:

Cycle unicycle = new Unicycle();

Cycle 不知道 Unicycle 类中的name。因此,当您执行 unicycle.name 时,它指的是 Cycle 类中的那个。


建议:始终将您的字段保密。


像 IntelliJ Idea 这样的 IDE 会突出显示此错误。

关于java - 多态性:方法改变,但参数值不变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63297315/

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