«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Почему Go не поддерживает традиционное наследование?

Почему Go не поддерживает традиционное наследование?

Опубликовано 8 ноября 2024 г.
Просматривать:340

 Why Doesn\'t Go Support Traditional Inheritance?

Наследование в Go

Почему Go не поддерживает традиционное наследование типов?

Традиционное Наследование типов, при котором подкласс наследует определения одного или нескольких родительских классов, не является особенностью языка программирования Go.

Обоснование авторов

В Go FAQ, создатели языка объясняют, что объектно-ориентированные языки программирования часто подчеркивают определение отношений между типами, которые могут быть автоматически выведены в Go. Вместо явного указания отношений типов типы Go автоматически удовлетворяют любому интерфейсу, который определяет подмножество их методов.

Преимущества подхода Go

Этот подход дает несколько преимуществ:

  • Упрощенный учет: Нет необходимости явно объявлять отношения типов.
  • Гибкость интерфейса: Типы могут удовлетворять нескольким интерфейсам одновременно, избегая сложностей традиционного множественного наследования.
  • Легкие интерфейсы: Интерфейсы могут иметь один или ноль методов, что позволяет выражать полезные концепции без необходимости дополнительных аннотаций типов.
  • Гибкость для изменений: Интерфейсы можно добавлять постфактум, обеспечивая гибкость для новых идей или тестирования без изменения исходных типов.
  • Отсутствие иерархии типов: отсутствие явных связей между типами устраняет необходимость управлять иерархиями типов или обсуждать их.

Альтернативный принцип

Go продвигает принцип композиции, а не наследования. Это предполагает создание новых типов путем объединения существующих типов, а не использования наследования для создания нового типа со всеми функциями его родительских типов.

Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3