簡體   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