一个关于构造方法重载的问题
来源:8-7 【面向对象】this 到底是谁?

张三zzzzzz
2023-07-29
老师,请问一下:
对于重载的构造方法,Java 内部是怎么能够识别开发者调用的是哪一个构造方法呢?
Java 为什么这么聪明?😂
class Car {
private char color;
private float price;
public Car(char color, float price) {
this.color = color;
this.price = price;
}
public Car(float price, char color) {
this.color = color;
this.price = price;
}
}
public class Main {
public static void main(String[] args) {
Car c1 = new Car('红', 19800);
Car c2 = new Car(38000, '绿');
}
}
写回答
1回答
-
根据传入的参数,去调用对应的构造方法。代码中两个构造方法的参数类型不同,第一个构造方法的参数是 char、float 类型,实例化 c1,传入的参数与之对应,调用该构造方法。实例化 c2 时传入的参数,与第二个构造方法的参数对应,自动调用这个构造方法。
00
相似问题