在java中重载构造函数的原因

时间:2013-06-17 03:14:46

标签: constructor overloading constructor-overloading

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

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:2)

不确定你在这里问的是什么。

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

以下是规则(我的)。您可以使用相同的方法名称,但参数应该不同。

示例:构造函数重载

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)

这不是重载,甚至编译器都不允许你这样做。