我不得不象下面我應該使用抽象類還是使用類?
時更改interace A {
}
class B implements A {
}
現在,我發現我不得不重複一段代碼提取出到的方法的情形。
說有B類像下面的方法:現在
private void domSomething() {
//sequence of steps
}
,問題是,在未來,我們期待一個接口等實現使用方法doSomething()
。
所以這裏的困境是應該將方法doSomething()移動到util類,或者我們應該創建一個受保護的doSomething()
方法的抽象類。像下面的東西。
abstract class C implements A {
protected void doSomething();
}
class B extends C {
}
或者創建一個utils的類,並令B仍然實現A.
一般來說,我喜歡用抽象的剋制,並尋找途徑,以避免它們。因此,這導致在這裏的一些問題:
- 是正確的方式來思考抽象類?
- 這裏應該更偏愛哪種方法,爲什麼?
- 總是歡迎任何其他暗示思考過程的暗示。
,如果我得到你的問題的權利, 你應該寫you' DoSomething的()'方法到一個類,並回答你的問題是沒有是不正確的方式去思考抽象類,如果你想要改變一個類來抽象和實現'doSomething()'函數,那麼如果其中一個子類沒有實現這個函數,那麼這個函數被調用你的代碼運行父功能,回答你的第二個問題,我應該說移動功能到一個類。 – Rome