# DeepCopy



## benxhamin (18. Jun 2015)

Hallo, ich hoffe es kann mir einer Helfen.Es geht um clone() ich weis nicht wie man das bei dieser aufgabenstellung anwendet.



Sorgen Sie dafür, dass alle Tiere das Interface Cloneable implementieren.


```
public abstract class Tier implements Cloneable{

    @Override
    public Tier clone()  {
        Tier klon = null;
        try {
            klon=(Tier) super.clone();
        } catch (CloneNotSupportedException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return klon;
    }
    
    // Instanzvariablen
    String bezeichnung;
    String name;
    Boolean zahm;
```
 
Sorgen Sie dafür, dass Ihre Artenvielfalt die Schnittstelle Cloneable implementiert. Stellen 

                             sie sicher, dass Ihr Code eine DeepCopy, auch tiefe Kopie genannt, erstellt. 

```
public class Artenvielfalt implements Cloneable{
    
    @Override
    protected Artenvielfalt clone() {
        Artenvielfalt klon= null;
    try {
        klon= (Artenvielfalt) super.clone();
    } catch (CloneNotSupportedException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    return klon;
    }
    
    
    BiologischeOrdnung<Saeugetier> saeugetiere = new BiologischeOrdnung<Saeugetier>();
    BiologischeOrdnung<Fleischfresser> fleischfresser = new BiologischeOrdnung<Fleischfresser>();
    
    
    public Artenvielfalt(){
        
    }


    public BiologischeOrdnung<Saeugetier> getSaeugetiere() {
        return saeugetiere;
    }


    public void setSaeugetiere(BiologischeOrdnung<Saeugetier> saeugetiere) {
        this.saeugetiere = saeugetiere;
    }


    public BiologischeOrdnung<Fleischfresser> getFleischfresser() {
        return fleischfresser;
    }


    public void setFleischfresser(BiologischeOrdnung<Fleischfresser> fleischfresser) {
        this.fleischfresser = fleischfresser;
    }
```



```
public class BiologischeOrdnung<E> extends ArrayList<E> {

}
```

                     Bemerkung: Beachten Sie, dass Fleischfresser auch Tiere sind. Tiere wiederum sind Cloneable.

das sind meine restlichen Klassen

```
public interface Fleischfresser {

}
```


```
public abstract class Saeugetier extends Tier {

}
```


```
public class Loewe extends Saeugetier implements Fleischfresser{
    
    
}
```


```
public class Giraffe extends Saeugetier{
```


```
public class Geier extends Tier implements Fleischfresser{
}
```


----------

