2010-05-19 74 views
0

任何人都可以請教我如何避免在Objective-C的子類中重寫超類方法,就像Java中的「最終」概念一樣。如何避免覆蓋子目錄中的方法c

+0

這個問題也可能揭示這個問題: http://stackoverflow.com/questions/2864273/how-to-avoid-the-base-class-member-functions-getting-overridden-by-sub -class-in-o/2864554 – 2010-05-19 10:20:03

回答

4

你不能。您甚至不能確定葉類的方法是否是您提供的方法,因爲我們可以使用Objective-C運行時庫來替換正在運行的應用程序中的方法實現。這是運行時庫設計的一個有意思的特徵。

+0

好的,那麼如何保護我的超類屬性,即不能通過對象的存在來改變。以及開發人員在編寫框架或包裝時如何處理這些情況。 – chethan 2010-05-19 10:00:36

+0

@tttthan你沒有,或者你記錄的要求,並希望開發人員遵循它。你可以做一些事情,比如KVC的隱藏屬性或者混淆他們的使用,但是你不能阻止人們接觸它們。 – 2010-05-19 10:38:07

+0

試試這個:: http://iphonedevelopertips.com/objective-c/private-methods.html – 2012-04-30 06:13:10

-1

嗯,我不知道「最終」等同於客觀C,但如果有一個父類的方法,你不想叫就是不寫具體的方法在你的子類

另外我認爲用「+」前綴編寫的方法與「 - 」相反是一種類方法,而不是一種實例方法,因此方法應該始終相同。