Информация об изменениях

Сообщение Re[42]: benchmark от 06.02.2017 2:12

Изменено 06.02.2017 2:15 Evgeny.Panasyuk

Re[42]: benchmark
Здравствуйте, netch80, Вы писали:

_>>Ты же наверняка знаешь, что во всех этих языках все методы являются виртуальными функциями (говоря языком C++).

N>Вы тут ну очень много написали, но в следующих ста сообщениях я не увидел возражений, поэтому комментирую. Как это получилось, что ты не в курсе, что в Java и C# просто перевёрнуто умолчание объявления метода виртуальным? Там, где в C++ говорится virtual, в Java молчат, а где в C++ не говорится virtual, в Java говорится final (а в C# — sealed), последствия для виртуальности те же.

Вообще-то это другое, с другими свойствами. final/sealed не делает метод не виртуальным, точнее виртуальный метод вполне может быть final
И кстати final есть и в C++, что я уже выше упоминал.

N>Это чуть упрощая (есть проблемы одноимённых методов и т.п.), но для данных целей сгодится. И видя final — компилятор (пусть JIT) точно так же имеет право рисовать обращение напрямую к нужному методу или инлайнить его.


Вот только в примере
Автор: alex_public
Дата: 13.01.17
который разбирался в топике, final в базе A на метод f не поставишь
Re[42]: benchmark
Здравствуйте, netch80, Вы писали:

_>>Ты же наверняка знаешь, что во всех этих языках все методы являются виртуальными функциями (говоря языком C++).

N>Вы тут ну очень много написали, но в следующих ста сообщениях я не увидел возражений, поэтому комментирую. Как это получилось, что ты не в курсе, что в Java и C# просто перевёрнуто умолчание объявления метода виртуальным? Там, где в C++ говорится virtual, в Java молчат, а где в C++ не говорится virtual, в Java говорится final (а в C# — sealed), последствия для виртуальности те же.

Вообще-то это другое, с другими свойствами. final/sealed не делает метод не виртуальным, точнее виртуальный метод вполне может быть final
И кстати final есть и в C++, что я уже выше упоминал.

N>Это чуть упрощая (есть проблемы одноимённых методов и т.п.), но для данных целей сгодится. И видя final — компилятор (пусть JIT) точно так же имеет право рисовать обращение напрямую к нужному методу или инлайнить его.


Вот только в примере
Автор: pilgrim_
Дата: 14.01.17
который разбирался в топике, final в базе A на метод f не поставишь