Да, отношения is-a и has-a переходные .Это означает, что вы не можете, например, сказать, что
Car
is-a Vehicle
(который имеет -a SteeringWheel
) за исключением у него нет-a SteeringWheel
.
или
Car
is-a Vehicle
(который является -a Machine
) за исключением это-не-* Machine
.
Необходимость реализации приведенных выше примеров будет означать, что ваш дизайн имеет недостатки.По сути, это идет вразрез с принципом открытого-закрытого в SOLID - вам просто не следует отнимать от базового класса (или игнорировать существование некоторых егочасти), только расширить это по наследству.