Показать сообщение отдельно
Старый 07.09.2011, 22:12
Seagull вне форума Посмотреть профиль Отправить личное сообщение для Seagull Найти все сообщения от Seagull
  № 1  
Ответить с цитированием
Seagull

Регистрация: Jun 2011
Сообщений: 18
По умолчанию Что такое super в перегруженных функциях? Вопрос быстродействия.

Что есть этот super.methode()? Это банально вызов метода из базового класса, Со всеми накладными расходами? Или это синтаксический сахар от компилятора?

Ибо вычитал:
Цитата:
Сообщение от Psycho Tiger Посмотреть сообщение
Насчёт this везде ещё соглашусь, однако с точки зрения ООП super всё таки при вызове методов суперкласса писать нужно. Байткод разный получается, так что... лучше переучиваться
Байткод разный потому что так - мы работаем с конкретной функцией, а если явно не указали то в рантайме идёт нисходящий поиск по родителям? По хранимым (а они хранятся, насколько я знаю) именам методов классов?


Кроме того там же вычитал про медленность конструктора. Мол он каждый раз просчитывается.

Цитата:
Сообщение от wvxvw Посмотреть сообщение
Вообще, в конструкторе лучше либо ничего не писать, либо самый минимум. Конструктор - это самая медленная функция в классе изза того, что каждый раз она по-новому прочитывается (остальные функции раз скомпилировали JIT'oм и используем готовые). Да и ограничения на порядок вызова тоже не самое лучшее - вобщем, если в конструкторе нужна какая-то логика, легче ее всю завернуть в отдельную функцию и вызвать из конструктора чем потом сталкиваться с подобного рода проблемами.

Вообще, поделитесь, люди умные инфой где ТАКОЕ можно найти, или на какие грабли лучше не наступать. И вообще за я почему-то считаю, что программист обязан разбираться не только в том что происходит, но и в том как... Хотя бы простейшем уровне. Вот только спрятали всё это, не найду, поделитесь пожалуйста хотя бы ссылочками. Благодарю.
__________________
_____
Почему-то перманентно чувствует себя лезущим куда-то не туда занудой. Тяжёлый случай. >.<