繁体   English   中英

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

[英]How do I create a public default constructor and an overloaded constructor?

我对Java和一般编码非常陌生。 我正在一个项目中创建了两个接口,现在正在创建一个名为VehicleChassis的具体类来实现我的Chassis接口。 首先,我创建了一个名为到底盘名称实例变量的字符串。 现在,我需要使用以下值创建一个默认的构造函数和重载的构造函数-一个带有到底盘参数的String值。 我已经在互联网上搜索了这两种方法的搜索结果,但是我很困惑。 救命!

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

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

你是这个意思?

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

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

如果您不打算在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;
}

有关构造函数重载的更多信息,请阅读此问题的答案

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

 public class VehicleChassis implements Chassis {
        public String chassisName;

        public VehicleChassis() {
            // some code
        }

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

    }

标记为抽象的类无法直接实例化。 因此我们不需要创建构造函数和重载的构造函数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM