А можешь обосновать что такого необходимого в наследовании и когда оно не может быть заменено композицией или в случае го ланга встраиванием типов
ООП базируется на трех китах: Наследование, Полиморфизм и Инкапсуляция.
Теоретически писать можно и без всего этого. Можно вообще весь код в один файл напихать. Можно именовать переменные непонятными именами типа fgswb3sg
Но это будет нечитабельный код и никто, кроме автора, не сможет в нем разобраться. Существуют правила, ориентированные на то, чтобы код мог быть прочитан другими программистами и чтобы он был легко пончтным и легко редактируемым. ООП придумали именно с этой целью.
Это я писал про элементарную вежливость кодописателя.
Но есть и другие причины пользоваться ООП. Например, чтобы грамотно организовать кол и не хранить в одном файле уйму разнородных данных.
Без использовпния ООП в коде начинают преобладать конмтрукции if-else в огромном количестве.
Вот, например, у Вас есть 50 типов датчиков и Вы определяете нужный по номеру.... Как Вы будете перебирать их?
Уже несколько десятелегтий существуют Design Pattetns (Шаблоны Проектировпния), о них должен знать каждый программист, про них спрашивают на собеседованиях и ссылки на определенные шаблоны как правило присутствуют в постановке задачи для программиста.
Все известные шаблоны проектирования оперируют классами.
Процесс коммандной разработки ПО тоже классоподобный: каждый программист в команде пишет свой класс, например.
Таким образом, класс - это не только способ оформления кода: это еще и зона ответственности одного командного разработчика.