0
說我有一個抽象超,A
,其被定義爲:省略一個子類的構造的在C#參數
public abstract class A {
protected string a1;
protected int a2;
protected char a3;
public A(string a1, int a2, char a3) {
this.a1 = a1;
this.a2 = a2;
this.a3 = a3;
}
}
我然後具有從A繼承X類 - 每個使用相同的構造 - 但每個都有自己的方法,它們以各自獨特的方式使用a1,a2和a3。儘管構造是相同的,從我的理解我不得不在每個子類中重新定義像這樣的參數的數量和類型:
public sub(string a1, int a2, char a3) : base(a1, a2, a3) {}
這可能是一個痛苦,如果我需要改變的類型因爲我需要調整所有11個類。如果我使用良好的繼承實踐,在大多數情況下,如果我修改A
的構造函數的參數,所有類都應該受到影響,但有些情況並非如此。例如,如果我將參數從Vehicle
更改爲Car
。 Car
是Vehicle
的一個子類,所以它具有所有的Vehicle
的API成員,並且除了它們的構造函數外,沒有任何類需要更改。
有沒有辦法做到的線沿線的東西:
public sub {
public sub(...) : base(...) {}
}
,這樣就沒有必要改變所有10子類構造函數定義時參數類型的改變?
啊,關於重構的好點。我的背景是使用腳本編寫,使用像Notepad ++這樣的編輯器,其中最接近重構的是Find和Replace,所以我完全忘了它。 – Drew