java中无参构造函数和默认构造函数是一样的吗?

Python011

java中无参构造函数和默认构造函数是一样的吗?,第1张

默认构造函数是在没有显式提供构造函数时,系统自动添加的无参构造函数;

而当无参构造函数显式提供时,系统不会再自动添加,此时就不存在默认的构造函数。

因此,这句话是对的。

当类没有声明构造方法的时候,就会使用默认的构造方法, 这个默认的构造方法就是“无参构造方法”

当类声明了有参构造方法的时候,默认构造方法就失去了本身的作用。

public class Client {

    public static void main(String[] args) {

        // 声明一个Cls3

        Cls3 cls3

        // 获取Cls3 对象有两种方式

        {

            cls3 = new Cls3()  // 使用无参构造对象

            cls3 = new Cls3("有参")  // 使用有参构造对象

        }

        // 声明一个Cls2

        Cls2 cls2

        // 获取Cls2对象

        {

//            cls2 = new Cls2()  // 因为cls2只有一个有参构造方法,使用无参构造方法构造对象会出现编译错误。

            cls2 = new Cls2("有参") // 使用有参构造对象

        }

        // 声明一个Cls1

        Cls1 cls1

        {

            cls1 = new Cls1()  // 使用无参构造对象

        }

    }

}

// 定义一个默认构造方法的类

class Cls1 {

}

// 定义一个有参的构造方法类

class Cls2 {

    Cls2(String arg) {

    }

}

// 定义一个有参和无参两个构造方法的类

class Cls3 {

    Cls3() {

    }

    Cls3(String arg) {

    }

}