Как эффективно реализовать наследование с использованием протобуферов

У меня есть сообщение базового класса

message Animal {
     optional string name = 1;
     optional int32 age = 2;  
}

и подкласс, который расширяет животное

message Dog{
     optional string breed = 1;
}

Таким образом, при создании сообщения собаки, я должен иметь возможность установить все поля Animal. Я знаю, как это сделать (объявив все поля животных снова в сообщении собаки), но возможно ли просто и эффективно использовать протобуферы? Также я узнал о расширениях и понял, что он просто используется для добавления нового поля к уже существующему сообщению, и поэтому его не следует неправильно истолковывать как возможное решение для достижения наследования.

Возможно ли достичь вышеуказанной простой конструкции с использованием протобуферов?с расширениями?

Ответы на вопрос(1)

Ваш ответ на вопрос