2017-05-11 55 views
0

派生出的另一類派生的類的我有一個類Accommodation如下:C#字段中包括參數的構造函數,已經從已經從抽象類

class Accommodation { 
    int accommodationNo 
    String address1 
    String address2 
    String postcode 
    double valuation 
    double rent 
    int noRentPaymentsPerYe 
} 

Housing延伸Accommodation

class Housing : Accomodation { 
    String type 
    int noBedrooms 
    int noCarParkingSites 
} 

和類Flat擴展Housing

class Flat : Housing { 
    double maintenanceCharge 
} 

當創建一個參數爲Flat class的構造函數時,是否包含每個字段最多爲Accommodation?將高度讚賞參數類爲Flat的構造函數的示例。

+1

我相信需要1分鐘的時間在IDE中檢查 –

回答

1

是的,您必須包含每個字段,並將其傳遞給構造函數鏈(這是字段的縮寫,因爲每個類只需要一對夫婦來演示 - 您需要添加其他字段):

public abstract class Accommodation { 
    private int accommodationNo; 
    private String address1; 
    protected Accomodation(int acomNo, string addr1) { 
     this.accomodationNo = acomNo; 
     this.address1 = addr1; 
    } 
} 
public class Housing { 
    private String type; 
    private int noBedrooms; 
    public Housing(int acomNo, string addr1, string typ, int noBeds) 
      : base(acomNo, addr1) { 
     this.type = typ; 
     this.noBedrooms = noBeds; 
    } 
} 
public class Flat { 
    double maintenanceCharge; 
    public Flat(int acomNo, string addr1, string typ, int noBeds, double maintCharge) 
      : base(acomNo, addr1, typ, noBeds) { 
     this.maintenanceCharge = maintCharge; 
    } 
}