7
A
回答
10
取決於您的用例。如果抽象方法只實現了抽象類中公共方法中可用的某些更大功能,那麼它可能應該受到保護。如果它是可以/應該從另一個班級調用的獨立方法,則將其公開化。
例子:
public abstract class Foo implements Closeable {
public final void close() {
// do whatever
doClose();
}
protected abstract void doClose();
}
public abstract class Bar {
public void read(byte[] b) {
for(int x = 0; x < b.length; x++) {
b[x] = read();
}
}
public abstract int read();
}
1
我想這取決於方法的作用。如果它代表類(和子類)行爲,它應該是公開的。如果要由子類實現的方法是內部的並且被基類的其他方法使用(如定義算法策略),它應該受到保護。
2
這裏是公共的區別,protected和private:
對於方法,如果您設置的公共可所有的包內訪問的所有類在你的項目中,如果你設置了保護,它可以訪問擴展抽象類的相同包或子類中的所有類。
對於問題編號。 2:是的。
相關問題
- 1. 抽象類中的屬性可見性
- 2. 抽屜可見性
- 3. 可選的抽象方法
- 4. 抽象類和方法|歧義意見
- 5. 抽象方法重寫抽象方法
- 6. CakePHP方法可見性
- 7. 抽象方法
- 8. 抽象方法
- 9. 將對象以標準方式傳遞給接口/抽象類
- 10. 有什麼標準的方法來存儲抽象語法樹文件?
- 11. JPA標準搜索屬性抽象集合中的子類
- 12. 建議從抽象類中的方法調用抽象方法
- 13. 爲什麼我可以抽象重寫一個抽象方法?
- 14. C#:抽象類中的抽象和非抽象方法?
- 15. 抽象類非抽象方法調用
- 16. 抽象類和抽象方法
- 17. 抽象類沒有抽象方法
- 18. 在ArrayList中的子對象的屬性和方法不可見
- 19. C++抽象方法
- 20. C#抽象方法
- 21. 抽象語法樹(AST)中的常見屬性是什麼?
- 22. 方法的可見性及其成本
- 23. C++特殊方法的可見性
- 24. 動態確定方法的可見性
- 25. 更改方法的可見性
- 26. Android對象的可見性
- 27. ASP.NET對象的可見性
- 28. 標準OO抽象爲人類/人
- 29. JPA 2標準加入抽象集合
- 30. 接口/抽象類編碼標準
這不是他問的。他問什麼是抽象類的最佳實踐,而不是公共/私人/保護的定義。 – 2012-04-12 04:21:19
是的,他可以根據我的解釋決定他想要選擇公開還是保護。 – Crazenezz 2012-04-12 04:24:49