一个关于构造方法重载的问题

来源: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回答

彭彭老师

2023-07-30

根据传入的参数,去调用对应的构造方法。代码中两个构造方法的参数类型不同,第一个构造方法的参数是 char、float 类型,实例化 c1,传入的参数与之对应,调用该构造方法。实例化 c2 时传入的参数,与第二个构造方法的参数对应,自动调用这个构造方法。

https://img.mukewang.com/szimg/64c5d38209f1616809190548.jpg

0
0

Java零基础入门与实战

Java零基础入门与实战 多场景|多案例|全栈项目

277 学习 · 220 问题

查看课程