Рассмотрите использование фильтров zip Повышения. Согласно им, это поддерживает bzip
, gzip
и zlib
формат.
Simula (1967) , который считается первым объектно-ориентированным языком, имеет модификаторы, называемые protected и hidden . Я предполагаю, что по умолчанию используется public, я не могу вспомнить. Он также использует виртуальный .
И, благодаря Павлу, Simula представила наиболее важные ключевые слова (и концепции) класса , , this , ] новый , понижающие и ссылочные типы.
Smalltalk (1980) , более поздний, но гораздо более фундаментальный объектно-ориентированный язык, дал нам методов , отвечающих на сообщения . По сути, это те же функции, что и виртуальные функции. Позднее сообщения и классы были имитированы на языке C (не OO), чтобы придать полиморфное поведение Windows API.
публичные, частные и защищенные модификаторы доступа взяты из C ++. Кажется , что публичное и частное уже существовали в "C с классами", недолговечном предшественнике C ++. Это, вероятно, подробно описано в Проектирование и развитие C ++ .
Я думаю, что абстрактные и окончательные исходят из Java, а внутренние - из C #.
Что касается C ++, истоки частной и общественной защиты берут начало до экспериментов Страуструпа с C с классами, но из еще более старой системы - компьютера Cambridge CAP. Это описано в разделе 2.10 книги «Дизайн и развитие C ++».
Что касается защиты, то у нее было более мрачное прошлое, и у меня нет подходящей ссылки на нее.
Подобные вещи начинаются с того, что дизайнеры на нескольких языках спрашивают: «Какое простое, логичное название для этой концепции?»? затем со временем определенные имена становятся популярными (иногда потому, что они хорошие, иногда просто потому, что). прибавьте 20 лет, и большинство людей в конечном итоге выберет одни и те же имена, основываясь на том, что они видели.
Возможно, похожий вопрос на вопрос, как новые слова добавляются (скажем) к английскому языку.