gpt4 book ai didi

java - 函数重载与函数覆盖java中的继承类

转载 作者:行者123 更新时间:2023-11-30 06:46:11 25 4
gpt4 key购买 nike

考虑以下代码

public class SuperClass
{
//label 1
void function(int a)
{
System.out.println(a);
}
}

public class SubClass extends SuperClass
{
//label 2
void function(int a)
{
a++;
System.out.println(a);
}

//label 3
void function(float a)
{
System.out.println(a);
}
}

据我所知,label 2 是一个函数重写的例子,因为父类(super class)方法在子类中被重写并具有自己的实现,而label 3 是一个函数重载的一种形式,因为函数名相同,但参数不同。

我的问题是,如果标签 3 实际上是函数重载,它重载了哪个函数?标签 1 还是标签 2

我的理论是标签 3 重载了标签 2,因为它们属于同一类。

我遇到过这些链接 -

Does overloading work with Inheritance?

Different ways of Method Overloading in Java

虽然他们提供了有用的信息,但他们并没有真正回答我的问题。

这只是我在学习 Java 中的多态性时遇到的一个概念性问题。任何帮助将不胜感激。

最佳答案

My question is if label 3 is in fact function overloading, which function is it overloading? Label 1 or label 2?

标签 2,因为重载只出现在 SubClass 中。 SuperClass 中没有重载。 (尽管您可能会争辩说因为标签 2 覆盖了标签 1,答案是“两者都有”,但在实际发生过载的任何上下文中,您都必须覆盖 - 例如,您必须处理带有 SubClass 引用——所以实际上它只是标签 2。)

关于java - 函数重载与函数覆盖java中的继承类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47920907/

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