Basicaly我需要幾種方法來做同樣的事情,但是子類可以選擇不同的參數,並且仍然強制執行。 這是一個正確的方法/設計?在實現的抽象方法中調用超類方法
編輯:我已編輯的addItem()身上,這些方法包含用於處理傳遞的參數
public abstract Class A {
public abstract void addItemImpl()
addItem(String s) {
// do stuff
}
addItem(Collection c) {
// do stuff
}
addItem(Item item) {
// do stuff
}
}
public Class B extends A {
addItemImpl() {
addItem("text, text2")
}
}
public Class C extends A {
addItemImpl() {
addItem([item, item2])
}
}
這是一個相當奇怪的模式。爲什麼你只需要使用基類中的所有方法? – biziclop 2012-08-17 15:58:42
我不明白DoStuff應該如何工作。是否必須檢查每個項目類型以決定哪些項目已被添加? – Heisenbug 2012-08-17 16:00:47
我已更新我的問題,做的東西只是虛擬邏輯來處理參數,而不是一個具體的方法 – Dopele 2012-08-17 16:10:20