Да, наследование предназначено именно для отношений "есть". В случае Name и Address было бы, возможно, более элегантно иметь составной класс Person, который имеет переменные-члены типов Name и Address.
Но для случаев, когда действительно каждая сущность класса Address также имеет те же свойства, что и наследование класса Name, допустимо. Опять же, это зависит от того, как это будет работать в реальной проблеме, это не общий вопрос.