gpt4 book ai didi

java - Java 中的意外输出 - 与继承相关

转载 作者:行者123 更新时间:2023-12-01 06:53:36 25 4
gpt4 key购买 nike

这是我的示例程序。

class parent
{

void display(int i)
{
System.out.println("parent");
}

}

class child extends parent
{

void display(byte i) //Line 0
{

System.out.println("child");
return;
}

}

class impl
{

public static void main(String...args)
{

parent p = new parent();
p.display(5); //Line 1
child c = new child();
c.display(3); //Line 2

}

}

这是我的输出。

varun@\:~/Desktop/JavaFiles$ java impl
parent
parent

我了解第 1 行从父级调用 display() 方法并输出预期的“parent”。

但我不明白为什么第 2 行从父类而不是子类调用 display(),即使我没有使用多态初始化(我所做的只是子类的常规初始化)。

最佳答案

child 中的 display(byte) 方法不会覆盖 parent 中的 display(int) 方法。由于默认情况下 3 是一个 int,因此您可以在 parent 中调用 display 方法。

尝试c.display((byte)3)

关于java - Java 中的意外输出 - 与继承相关,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18549834/

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