当前位置: 首页 > 知识库问答 >
问题:

Java 中的方法重载与覆盖

狄海
2023-03-14

下面的代码是方法重载或重写的例子吗?

我将一个方法从超类继承到具有 main 方法的子类中,但很少有网站表明重载方法应该仅在父类中重新定义,但我还没有这样做。

class overload
{
    public static void sum(int a, int b, int c)
    {
        System.out.println("sum="+(a + b + c));
    }
}

class Main extends overload
{
    static void sum(int a, int b)
    {
       System.out.println("sum="+(a+b));
    }
    
    public static void main (String s [])
    {
       sum(1,2);
       sum(1,2,3);
    }
}

共有1个答案

巩阳秋
2023-03-14

是的,这是重载:它提供了两个名称相同但签名不同的方法。

重写只发生在相同的签名中,其中子类提供了不同的实现,而不更改公开的API。跨类层次结构而不是在同一个类中声明的所有方法进行重载会增加额外的复杂性,但这并不能改变这样一个事实:从根本上说,这就是重载。

(请注意,这里是否存在< code>main方法并不重要。如果没有它,您的代码仍然会是一个重载的例子。)

更复杂的是,静态方法不能进行重写。子类可以声明一个与超类中的方法具有相同签名的静态方法,而不用覆盖任何东西——因为当静态方法被调用时,没有对象可以用来选择调用哪个实现。这不会是一个覆盖或超载的情况。

 类似资料:
  • 问题内容: 嗨,我只是想确保我正确理解这些概念。Java中的重载意味着您​​可以拥有具有不同数量的参数或不同数据类型的构造函数或方法。即 这个方法怎么样?由于它返回不同的数据类型,是否仍会被视为重载? 第二个问题是:java中有什么重载?它与继承有关吗?让我们有以下内容: 所以现在让我说以下 如果我打电话 这将返回车辆类的价格20,000 如果我打电话 这将返回卡车级别的价格14,000 我的知识

  • 本文向大家介绍解析Java继承中方法的覆盖和重载,包括了解析Java继承中方法的覆盖和重载的使用技巧和注意事项,需要的朋友参考一下 方法的覆盖 在类继承中,子类可以修改从父类继承来的方法,也就是说子类能创建一个与父类方法有不同功能的方法,但具有相同的名称、返回值类型、参数列表。   如果在新类中定义一个方法,其名称、返回值类型和参数列表正好与父类中的相同,那么,新方法被称做覆盖旧方法。   参数列

  • 你能解释一下第一行最后一个false输出,为什么它不是真的吗?

  • 本文向大家介绍在Java中可以重载或覆盖静态方法吗,包括了在Java中可以重载或覆盖静态方法吗的使用技巧和注意事项,需要的朋友参考一下 Java中的静态方法可以重载。 让我们看一个例子- 示例 输出结果 名为Demo的类包含一个名为“ test”的函数,该函数可打印特定消息。它还定义了另一个名为“ test”的函数,该函数以整数值作为参数。在main函数中,调用test函数时不带参数和带整数参数。

  • 问题内容: 假设我在课堂上说两种方法 和 那是什么感觉 重载还是重载? 问题答案: 重载是指两个或多个具有相同名称但参数不同的方法,就像您的示例一样。重载是从接口或抽象类实现一个方法的,因此超类中的方法具有实现,而子类中的方法具有不同的实现,它们仍然具有相同的方法名称和参数。

  • 问题内容: 以下代码无法编译。 发出编译时错误。 对test的引用是模棱两可的,varargspkg.Main中的方法test(int …)和varargspkg.Main中的方法test(float …) 这似乎很明显,因为方法调用中的参数值可以提升为 如果任何一个或两个参数都带有或作为后缀,则会进行编译。 但是,如果我们用相应的包装器类型表示方法签名中的接收参数,如下所示 那么对该方法的调用不

  • Java 允许同一个类中定义多个同名方法,只要它们的形参列表不同即可。 如果同一个类中包含了两个或两个以上方法名相同的方法,但形参列表不同,这种情况被称为方法重载(overload)。 例如,在 JDK 的 java.io.PrintStream 中定义了十多个同名的 println() 方法。 这些方法完成的功能类似,都是格式化输出。根据参数的不同来区分它们,以进行不同的格式化处理和输出。它们之

  • 本文向大家介绍请说明Java中的方法覆盖(Overriding)和方法重载(Overloading)是什么意思?相关面试题,主要包含被问及请说明Java中的方法覆盖(Overriding)和方法重载(Overloading)是什么意思?时的应答技巧和注意事项,需要的朋友参考一下 考察点:方法 Java中的方法重载发生在同一个类里面两个或者是多个方法的方法名相同但是参数不同的情况。与此相对,方法覆盖