2011-11-27 24 views

回答

5

將所有課程都抽象化或最終化通常是安全的。

這樣,很明顯是否需要爲繼承設計一個類。

如果您後來發現由於某種原因,您需要從具體(非抽象)類繼承 - 這通常表示整體設計中存在一些不對稱性 - 您仍然可以刪除最後一個關鍵字並確保你的班級適合繼承。

因此,通過這樣做,您可以避免浪費必須設計所有繼承類的問題,同時還可以獲得可維護的明確意圖的代碼。

+1

是的,您還允許jvm在與其具體類型一起使用時調用最終類的方法,因此即使我的關於清晰意圖的論點從我的個人角度來看更重要 - 您可以獲得更好的表現。內聯確實是一個強大的工具。獲得這種優勢的另一個工具是使用最終和/或私有方法,因爲它們也保證永遠不會被覆蓋。因此,請勿在性能嚴重的內部循環中使用非最終類的非私有非終極方法:-) – yeoman

3

我從來沒有見過任何人,包括谷歌,在代碼中這樣做。我們被告知Dalvik VM本身已經進行了高度優化,從此可以得出結論,宣佈您的最終決定不會導致任何顯着的性能提升。一個人通常由於性能原因以外的原因而聲明類final

相關問題