Re: [問題] 要求繼承的子類別的method一定要呼叫supe
※ 引述《LaPass (LaPass)》之銘言:
: class A {
: void mthodA(){
: //一些重要的東西
: }
: }
: class B extants A{
: @override
: void methodA(){
: super.methodA(); // 如何要求子類別一定要呼叫這行?
: }
: }
: 不知道沒有辦法作到這種限制條件
: 我只看到android的activity
: 是採用在執行時檢查這個
: 但有沒有辦法在編譯時期就處理?
: 例如用 annotation 之類的方式
一般來說在設計上避過就可以了。
可以參看 Template Method pattern。簡單來說:
class A {
final void methodA() { // 那麼重要就別讓 child override 了
importantLogic();
doA();
}
protected void doA(){ // override 專用
}
}
class B extends A {
@Override
protected void doA() {
// 保證 importantLogic() 已跑
// B 的額外 logic
}
}
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 223.19.45.239
※ 文章網址: https://www.ptt.cc/bbs/java/M.1440586991.A.ED9.html
※ 編輯: adrianshum (223.19.45.239), 08/26/2015 19:03:39
※ 編輯: adrianshum (223.19.45.239), 08/26/2015 19:04:30
→
08/26 21:17, , 1F
08/26 21:17, 1F
推
08/27 13:12, , 2F
08/27 13:12, 2F
推
08/27 13:32, , 3F
08/27 13:32, 3F
→
08/27 13:34, , 4F
08/27 13:34, 4F
→
08/28 07:11, , 5F
08/28 07:11, 5F
→
08/28 07:12, , 6F
08/28 07:12, 6F
→
08/28 13:54, , 7F
08/28 13:54, 7F
→
08/28 13:55, , 8F
08/28 13:55, 8F
→
08/28 13:57, , 9F
08/28 13:57, 9F
→
08/28 20:56, , 10F
08/28 20:56, 10F
→
08/28 20:56, , 11F
08/28 20:56, 11F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
java 近期熱門文章
PTT數位生活區 即時熱門文章