Java: super.clone () metoda i dziedziczenie
Mam szybkie pytanie dotycząceclone()
metoda w Javie, używana jakosuper.clone()
w odniesieniu do dziedziczenia - gdzie nazywam toclone()
metoda w klasie nadrzędnej od przycisku.
Theclone()
metoda ma zwrócić kopię tego obiektu, jednak jeśli mam trzy klasy w dziedziczeniu heirachy i wywołaniesuper.clone()
trzy razy, dlaczego najwyższa klasa dziedziczenia nie znajduje się pod klasą Object i nie zwraca kopii tej klasy?
Załóżmy, że mamy trzy klasy: A, B i C, gdzie A -> B -> C (dziedziczenie = ->)
Potem dzwonięsuper.clone()
w klasie C wywołujeclone()
w B, który dzwonisuper.clone()
, przywołajclone()
w A które wywołaniesuper.clone()
'tym razem zostanie wywołany Object.clone (). Dlaczego nie jest to kopiathis
obiekt w odniesieniu do klasy A, z której jest zwracanyObject.clone()
? To brzmi dla mnie logicznie.