首页 > 解决方案 > java中具有多个名称的构造函数

问题描述

我来自JS。

为了做一些原生开发,我开始学习Java。

在那里他们有一个这样的例子来解释不同的构造函数(主要是普通构造函数,构造函数重载和复制构造函数)。

class Pet {
    private int petAge;
    private String petType;
    private String petName;

    //This is the constructor without any paramters
    public Pet() {
        petAge = 0;
        petName = "";
        petType = "";
    }

    //This is the constructor with parameters
    public Pet(String name, String type, int age) {
        petAge = age;
        petType = type;
        petName = name;
    }

    //This is the copy constructor
    public Pet(Pet copyThisPet) {
        petName = copyThisPet.petName;
        petType = copyThisPet.petType;
        petAge = copyThisPet.petAge;
    }

    public void print() {
        System.out.println("Pet Name: " + petName);
        System.out.println("Pet Type: " + petType);
        System.out.println("Pet Age: " + petAge);
    }
}

class pet_list {
    public static void main(String[] args) {
        Pet dog = new Pet();
        dog.print();

        Pet cat = new Pet("Princess", "cat", 45);
        cat.print();

        Pet cat_copy = new Pet(cat);
        cat_copy.print();
    }
}

我得到了这个例子,但我不知道 Java 如何决定调用哪个构造函数?另外,如果有两个将字符串作为输入的构造函数呢?

标签: java

解决方案


Java 根据构造函数调用中包含的参数选择合适的构造函数。同样的逻辑也适用于方法。

如果有两个以字符串为输入的构造函数怎么办?

这是不可能的:您不能有多个具有相同签名的构造函数/方法。


推荐阅读