Tuesday, March 10, 2009

Prohibit subclassing without using final

這是今天phone interview被問到的問題。


我當時也沒想出正確答案,後來查了一下Effective Java,赫然發現這個方法我老早就已經知道:把所有的contrsuctors設成private。如此一來,由於所有的子類別的constructors必須先呼叫其父類別的constructors,所以沒有提供public constructors的父類別就無法被繼承。

Joshua Bloch有特別提到這個方法的好處是提供了額外的彈性讓無法被繼承的類別仍然可以在內部subclassing。

每一次的面試,事實上都是認清自己盲點與不足的好機會,即使沒錄取,也還是有收穫囉!

No comments: