Цитата:
Сообщение от Яски
Мне проще в жизни всем верить - тем боле, что терять мне нечего.
Код не может вести себя непредсказуемо - как я его написал, так он себя и ведет. К непредсказуемому результату может только привести нарушение нужного мне порядка наследования.
Например, для чего может понадобиться переопределять свойство parent? Ну, например для того, чтобы скрыть реальный порядок наследования объектов, или протрейсить момент получения значения этого свойства. В обоих случаях используя super.parent вместо parent мы меняем, задуманный программистом, порядок работы. Это я к тому, что методы переопряделяются и код пишется с какой-то целью и последствия этого не так сложно предсказать — но вот, в случае, когда этот задуманный порядок нарушают последствия предсказать невозможно.
|
Есть некое ядро, например, UIControl. В нём повально используется super.parent, а this.parent всегда возвращает null. Почему? Потому что те, кто пишут UIControl-ы (это уже другой программист), должен работать с тем, что ему дано для реализации контрола, а шаги вправо-влево караются расстрелом сразу же. Помимо защищенности кода с использованием super, он ещё и менее подвержен появлению багов при разрастании цепочки наследования. Выгода на лицо, чем меньше всяких лазеек (разработчики игр, в которых вполне себе рулят реальные деньги, поймут), тем лучше.