Я часто объявляю методы, которые планирую переопределить, либо в общедоступном заголовке, либо, по крайней мере, в частной категории. Преимущество этого состоит в том, что вы получите предупреждение о неполном определении класса, если вы забудете переопределить метод ... который иногда пригодится.
Что касается , когда помещает его в публичный заголовок, это довольно субъективно и, вероятно, зависит от стиля кодирования, используемого вами / вашей командой. Обычно я переименовываю метод в общедоступном заголовке только в том случае, если я планирую радикально изменить действия метода или если я не планирую вызывать версию метода суперкласса.