【问题标题】:the cause of overloading a constructors in javajava中构造函数重载的原因
【发布时间】:2013-06-17 03:14:46
【问题描述】:

所以我似乎无法理解重载的问题。我知道这是由共享相同参数的构造函数引起的;但这是否必须完全相同相同,或者如果它们共享一个公共参数,或者如果一个具有三个参数但与另一个共享两个参数,是否会发生重载?

【问题讨论】:

标签: constructor overloading constructor-overloading


【解决方案1】:

不知道你在这里问什么。

但重载不仅适用于构造函数。这也适用于其他方法。

这里是规则(我的)。您可以具有相同的方法名称,但参数应该不同。

示例:构造函数重载

public Car()
{
}
private Car(int speed, int maxSpeed)
{
//...
}
public Car(String make, String model)
{
//...
}

这是超载。

但是对于上面的构造函数,下面是非法的。

public Car(String color, String make)
{
//...
}

因为 JVM 无法区分 (String make, String model) & (String color, String make) 构造函数。因此规则是,参数应该不同(类型和/或参数数量)。

再次记住:

public void printNames(String name1, String name2)
public void printNames(String x, String y)

这不是重载,甚至编译器也不会让你这样做。

【讨论】:

    【解决方案2】:

    一个 java 类可以包含两个或多个同名的方法,前提是这些方法接受不同的参数。这就是所谓的重载。创建重载方法时,每个方法都必须具有唯一的签名。

    【讨论】:

      猜你喜欢
      • 2021-07-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多