Ответ 1
Все методы класса и экземпляра в Objective-C отправляются динамически и могут быть переопределены в подклассах. Нет ничего похожего на ключевое слово С# override
или его ключевое слово virtual
.
Предположим, что у класса Vehicle есть метод под названием "StartEngine" , а в моем подклассе под названием "Самолет" я хочу переопределить "StartEngine" . Если я использую С#, я должен использовать ключевое слово "переопределить" в объявлении/определении метода самолечения StartEngine.
Причина, по которой я спрашиваю, заключается в том, что если вместо "StartEngine" я набираю "startengine", С# будет жаловаться, но Objective-C не будет, благодаря этому ключевому слову.
Все методы класса и экземпляра в Objective-C отправляются динамически и могут быть переопределены в подклассах. Нет ничего похожего на ключевое слово С# override
или его ключевое слово virtual
.
Да, это определенно возможно. Там нет ключевого слова переопределения. Просто объявите функцию с идентичной сигнатурой в вашем подклассе, и она будет вызываться вместо версии суперкласса.
Вот какой способ запуска AirPane startEngine может выглядеть следующим образом:
- (void)startEngine
{
// custom code
// call through to parent class implementation, if you want
[super startEngine];
}
Все методы из Objective-C являются переопределяемыми, вы просто пишете метод для той же сигнатуры.