Наследование фиксируется во время компиляции.
Похоже, вы не хотите, чтобы ваш новый класс расширялся HardwareIndependent или HardwareDependent;Вы хотите, чтобы использовал объект, который мог быть или.Вы хотите состав, а не наследство.Ваш третий класс (назовем это HardwareComposite) имеет ссылку на HardwareIndependent.Затем вы можете проверить, является ли это HardwareDependent во время выполнения с оператором instanceof, и, если это так, привести его к HardwareDependent и использовать дополнительные возможности, которые предоставляет.
Если ваш дизайн вынуждает вас смешивать понятия наследования и композиции, вы можете взглянуть на шаблоны Фасад и Фабрика.