# Interface-Vererbung und Implementierung



## Papuerus (12. Mai 2011)

Folgendes Problem:
Wir haben die Aufgabe bekommen eine Klasse SteelFactory die ein Interface Enterprise implementieren muss.
Das stellt alles kein Problem da, und alles was notwendig war habe ich implementiert bis auf folgendes:

Das Interface Enterpirce erbt vom Interface Comparable<T>

sieht wie folgt aus:

```
public interface Enterprise extends Comparable<Enterprise>{
...
}
```

jetzt sollen wir also


```
public class Steelfactory implements Enterprise{

...
}
```

hier muss ich jetzt compareTo implementieren

ich soll die Anzahl der Arbeiter vergleichen, die sind in einem Worker[] Array gespeichert
also anzhal bekomme ich mit

[c]worker.length[/c]

jetzt muss ich dem comparableTo aber ein Enterprise übergeben
was in meinen Augen total SInnfrei ist da Enterprise ja ein Interface ist und man doch aber ein Objekt übergeben muss

denn meine Idee war
[Java]
@Override
public int compareTo( ????????? o){
double myMembers = this.worker.lenth;
double otherMembers = o.worker.kength;

if myM > othM
return 1
if myM < othM
return -1

retun 0

}
[/code]

wir dürfen aber am Interface Enterprise nichts verändern und nun habe ich keine Ahnung wie man das realisieren muss


----------



## eRaaaa (12. Mai 2011)

Papuerus hat gesagt.:


> was in meinen Augen total SInnfrei ist da Enterprise ja ein Interface ist und man doch aber ein Objekt übergeben muss



Naja aber du kannst ja dann eben ein Objekt der Klasse die das Interface implementiert übergeben, in deinem Fall also auch Steelfactory-Objekte! Deine ???? musst du schon mit Enterprise ersetzen. 

/edit letzte Satz hat kein Sinn gemacht


----------



## XHelp (12. Mai 2011)

Enterprise passt schon. Du übergibst nicht das Interface, sondern eine Instanz vom Typ Enterprise. Allerdings kannst du dann nicht auf 
	
	
	
	





```
.worker
```
 zugreifen, was auch Sinn macht, denn das stellt dein Interface nicht zur Verfügung. Dafür sollten aber die Getter vorhanden sein.


----------



## Papuerus (12. Mai 2011)

Welches Array?

Wenn ich Enterprise durch SteelFactory ersetze kommt eine Fehlermeldung von Eclipse:"The method compareTo(SteelFactory) of type SteelFactory must override or implement a supertype methode"

PS: ich hab @Override oben noch ergänzt


----------



## Papuerus (12. Mai 2011)

Ok, was ist ein Getter?

Edit: ok hat sich denke ich erledigt, ich habe es jetzt mit

[c]o.getWorkerCounter();[/c]

Edit2: Und danke für die schnelle Hilfe


----------

