Понимание Object.clone () в Java

Я знаю, что использование этого механизма клонирования не очень хорошая идея (так каксломанный» как предлагают некоторые авторы), хотя мне нужна помощь, чтобы понять, как это работает. Мы'дается следующая иерархия классов:

class N implements Cloneable{
    protected int num;
    public N clone() throws CloneNotSupportedException{
        return (N)super.clone();
    }
}

class M extends N{
    protected String str;
    public M clone() throws CloneNotSupportedException{
        M obj = (M)super.clone();
        obj.setString(new String(this.str));
        return obj;
    }
    void setString(String str){
        this.str = str;
    }
}

посколькуN продолжаетсяObjectкакsuper.clone() вернуть экземпляр?Nsuper.clone() на самом делеObject.clone() который возвращает ссылку на объект классаObject, Почему мы можем использовать его?NN имеет членаnum это не в классеObject, Как поведению по умолчанию удается автоматически клонировать эту переменную (поскольку она не имеет записи об этом в классеObject)?

Кроме того, то же самое касается М. ВM.clone() мы'повторное приведение объекта из классаN (возвращаетсяsuper.clone()) к объекту классаM, Я знаю, что все это действительно, но я не понимаю, почему.

Ответы на вопрос(4)

Ваш ответ на вопрос