Cloneable

Status
Nicht offen für weitere Antworten.

kostonstyle

Aktives Mitglied
Hallo
warum fügt man hier die Schnittstelle Cloneable hinzu, obwohl die Methode clone vom Object ist. Braucht es überhaupt die Schnittstelle Cloneable, um die Methode clone zu implementieren?
Code:
package kapitel_17;

class Motor {
   String name;
 
   Motor(String s) {
      name = s;
   }
}

class Auto implements Cloneable {
   int maxGeschw;
   String name;
   Motor motor;

   Auto(String name, String motor, int maxGeschw) {
      this.name      = name;
      this.motor     = new Motor(motor);
      this.maxGeschw = maxGeschw;
   }

   protected Object clone() {
      try {
         return super.clone();
      } catch (CloneNotSupportedException e) { 
         return null;
      }
   }

   public String toString() {
      return name + ", " + maxGeschw + ", " + motor.name;
   }

}


class FlacheKopie {
    
   public static void main(String[] args)  {
      System.out.println();
      
      System.out.println("\n Zwei Auto-Objekte\n");
      Auto wagen1 = new Auto("Porsche", "Porsche", 280);
      Auto wagen2 = new Auto("VW", "VW", 180);

      System.out.println("\t Wagen 1: " + wagen1);
      System.out.println("\t Wagen 2: " + wagen2);

      System.out.println("\n wagen2 = wagen1.clone() \n");
      wagen2 = (Auto) wagen1.clone(); 

      System.out.println("\t Wagen 1: " + wagen1);
      System.out.println("\t Wagen 2: " + wagen2);

      System.out.println("\n Wagen 2 mit neuer Hoechstgeschwindigkeit und neuem Motor \n");
      wagen2.maxGeschw  = 120;
      wagen2.motor.name = "VW";

      System.out.println("\t Wagen 1: " + wagen1);
      System.out.println("\t Wagen 2: " + wagen2);
   }
    
}
Und warum ruft man in der Methode clone() wiederum die oberklasse.methode auf(super.clone())?
Code:
protected Object clone() {
      try {
         return super.clone();
      } catch (CloneNotSupportedException e) { 
         return null;
      }
Man könnte es doch direkt aufrufen, objekt1.clone() oder ist meine Behauptung falsch?

danke kostonstyle
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen

Ähnliche Java Themen

Neue Themen


Oben