Obiettivo-C manca di metodi privati o metodi finali java-esque. Ciò significa che è possibile che una sottoclasse sostituisca (accidentalmente) alcuni interni di una superclasse.
Come si prevengono i metodi di sovrascrittura in Objective-C?
How does one prevent overriding methods in Objective-C?
Scrivi nella documentazione della tua classe qualcosa come:
Subclasses should not override this method.
Scherzi a parte. Ho copiato tale citazione direttamente dalla documentazione per UIView.
L'obiettivo C incoraggia una cultura del fare per convenzione molte cose che sarebbero applicate da un compilatore in altre lingue, e questa è una di quelle cose. Sono sicuro che potresti giocare alcuni giochi con il runtime per cui ottieni l'IMP per il metodo che stai per chiamare e confrontalo con l'IMP del metodo della tua stessa classe. Ma poi, è possibile che qualcuno possa ingoiare un is-a su di te, o altrimenti giocare ai propri giochi, e alla fine di solito è meglio dire semplicemente "Per favore non farlo."
Leggi altre domande sui tag coding-style coding-standards objective-c