Deep cloning. Как правильно создать глубокую копию используя интерфейс clonable?

Вот участок кода(домашнее задание) в котором нужно скопировать лаптоп вместе с его компонентами(их тоже скопировать и вставить в новую копию лаптопа), решил это таким образом, но получаю ClassCastException в рантайме. Нужен способ сделать это без try{} и catch{} т.к. этого еще не учили. Каждый класс, соответственно implements Clonable

Ну и мой способ который не работает:

@Override
    public Laptop clone() throws CloneNotSupportedException {
        Laptop cloned = (Laptop) super.clone();
        Processor clonedProc = (Processor) super.clone();
        HardDrive clonedHardDrive = (HardDrive) super.clone();
        cloned.setHardDrive(clonedHardDrive);
        cloned.setProcessor(clonedProc);
        return cloned;
}

Ответы (0 шт):