MST

星途 面试题库

面试题:Java构造方法的重载与调用规则

请阐述Java中构造方法重载的概念,并说明在一个类中多个构造方法之间如何相互调用,以及这种调用有什么限制?
26.6万 热度难度
编程语言Java

知识考点

AI 面试

面试题答案

一键面试

构造方法重载概念

在Java中,构造方法重载指的是在一个类中可以定义多个构造方法,这些构造方法具有相同的方法名(与类名相同),但参数列表不同(参数的个数、类型或顺序不同)。通过构造方法重载,一个类可以以不同的方式进行初始化,以满足不同的创建对象的需求。

多个构造方法相互调用方式

在一个类的多个构造方法之间,可以使用 this() 语句来相互调用。this() 语句必须放在构造方法的第一行,它用于调用同一个类中的其他构造方法。例如:

public class Example {
    private int value;

    // 第一个构造方法
    public Example() {
        this(0); // 调用第二个构造方法
    }

    // 第二个构造方法
    public Example(int v) {
        value = v;
    }
}

调用限制

  1. 位置限制this() 语句必须是构造方法中的第一条语句。如果 this() 不是第一条语句,编译器会报错。
  2. 递归调用限制:不能形成递归调用。例如,构造方法A调用构造方法B,构造方法B又调用构造方法A,这样会导致栈溢出错误。
  3. 无法同时使用this()和super():在一个构造方法中,不能同时使用 this()super() 语句,因为它们都必须放在构造方法的第一行,而第一行只能有一条语句。