Может ли интерфейс содержать стандартные реализации нестатических методов? Может ли содержать содержать статические методы: со стандарнтной реализацией и без? Может ли интерфейс содержать поля (статичекие и нестатические)? Может ли интерфейс расширять другой интерфейс? Может ли расширять несколько интерфейсов? Существуют ли функицональыне интерфейсы? Может ли интерфейс содержать внутренний класс?
>>3549632 Вот зачем это помнить, никогда не понимал. Что-то на уровне знать про все случаи когда шарповый интерпритатор может менять инструкции местам в пределах критических областей
>>3551000 Конкретно я этими вопросами насрал, потому что ОП заявил, что читающий его пост освоил интерфейсы. Так-то ООП в том виде, который был зафоршен C++ -- говно.
>>3551603 И чем структуры Go отличаются от классов Java и C#? Тем, что методы объявляются снаружи? Так и в Delphi точно так же было, и в C++ тоже через :: можно. Каноническим является ООП в SmallTalk, а там классы присутствовали. В функциональных языках, поддерживающих ООП (Haskell, OCaml, F#) классы также есть, и вообще обобщенные классы - база типизации Хиндли-Милнера для построения любых иерархических систем. Только в дешевом недоязыке для домохозяек JavaScript нет классов. Точнее, не было раньше, сейчас и туда добавили синтаксический сахар (а нормальные разработчики вместо этого поделия пользуются TypeScript).
>>3551501 В C++ проблема не в классах и не в областях видимости, а в отсутствии рефлексии. Сейчас есть RTTI, но это все костыли, полноценно работать с COM, например (когда интерфейс неизвестен), из-за этого нельзя. В C# можно без проблем через dynamic методы.
>>3557372 в языке появляется статическая рефлексия (во время компиляции), которая станет частью стандарта C++26, позволяя коду взаимодействовать с информацией о своей структуре на этапе сборки
>>3557431 Верно, но неверно. ООП, конечно же про объекты, но ООП про то, как объекты себя ведут. И вот реализация поведения объектов на практике неизбежно приводит к классификации и иерархизации.