Как эффективно реализовать наследование с использованием протобуферов
У меня есть сообщение базового класса
message Animal {
optional string name = 1;
optional int32 age = 2;
}
и подкласс, который расширяет животное
message Dog{
optional string breed = 1;
}
Таким образом, при создании сообщения собаки, я должен иметь возможность установить все поля Animal. Я знаю, как это сделать (объявив все поля животных снова в сообщении собаки), но возможно ли просто и эффективно использовать протобуферы? Также я узнал о расширениях и понял, что он просто используется для добавления нового поля к уже существующему сообщению, и поэтому его не следует неправильно истолковывать как возможное решение для достижения наследования.
Возможно ли достичь вышеуказанной простой конструкции с использованием протобуферов?с расширениями?