K
K
Kostyan Kondr2016-12-26 13:41:38
go
Kostyan Kondr, 2016-12-26 13:41:38

Why is inlining not inheritance in golang?

Simple and even, in my opinion, stupid question. I wrote a test on the language and this question was marked with an error for me.
So why can't inlining be considered inheritance in golang?

Answer the question

In order to leave comments, you need to log in

2 answer(s)
O
OnYourLips, 2016-12-26
@OnYourLips

Потому что встраивание - это не наследование.
Наследование отвечает на вопрос "is".

S
s_kozlov, 2016-12-27
@s_kozlov

Встраивание суть композиция. Это другой тип отношений, отличный от наследования или агрегации.
Хорошо описано по этой ссылке
Если в Go захочется агрегацию - используем поля-указатели на структуры, если композицию - встраивание. Таким образом управляем "жесткостью" связи и временем жизни структур.
Если необходим полиморфизм поведения в рантайме - используем поля-интерфейсы, в которые инстанцируем потребные структуры во время выполнения.

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question