如何创建公共默认构造函数和重载的构造函数?

时间:2017-06-05 16:36:04

标签: java constructor interface

我对Java和编码非常陌生。我正在开发一个项目,我创建了两个接口,现在正在创建一个名为VehicleChassis的具体类,它实现了我的机箱接口。首先,我创建了一个名为chassisName实例变量的String。现在,我需要使用以下值创建一个默认构造函数和重载构造函数 - 一个参数值为chassisName的String。我在互联网上搜索了如何做到这两点,但我很困惑。救命啊!

以下是我到目前为止的代码。

public abstract class VehicleChassis implements Chassis{
public String chassisName;
}

4 个答案:

答案 0 :(得分:1)

你是说这个?

public abstract class VehicleChassis implements Chassis{
    public String chassisName;
    VehicleChassis() {
        chassisName = "name";
    }
    VehicleChassis(final String chassisName) {
        this.chassisName = chassisName;
    }
}

您将无法实例化此VehicleChassis,因为您已将其声明为抽象。但是,如果扩展此类,则可以使用构造函数。如果那是你打算做的事情,请考虑声明构造函数受保护。

答案 1 :(得分:1)

如果您未将Chassis保留VehicleChassis中的所有方法都设为abstract

您可以根据需要重载构造函数。

public String chassisName;
public VehicleChassis() {
    chassisName = "No";
}
public VehicleChassis(String chassisName) {
    this.chassisName = chassisName;
}

如果您有另一个实例变量:

public VehicleChassis(String chassisName, int price) {
    this.chassisName = chassisName;
    this.price = price;
}

有关constructor overloading read this question answer的更多信息。

答案 2 :(得分:0)

您可以创建如下构造函数。如果实例变量更多且并非所有都是必需的,那么您可以使用构建器模式逐步构建对象。

 public class VehicleChassis implements Chassis {
        public String chassisName;

        public VehicleChassis() {
            // some code
        }

        public VehicleChassis(String chassisName) {
            this.chassisName = chassisName;
        }

    }

答案 3 :(得分:-3)

标记为abstract的类无法直接实例化。所以我们不需要创建构造函数和重载的构造函数。