Interface als Parameter

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Hallo,

Entschuldigung, wenn diese Frage schon einmal gestellt wurde, ich hab schon dannach gesucht auch in Google aber nichts gefunden. Die Sache ist die...

Ich wollte ein Interface RowInterface erstellen, das die Zeile einer Tabelle darstellen soll

Code:
public interface RowInterface {  
    .....

    public CellInterface getCell(int i) { ... }

    public  void setCell(CellInterface cell) {  ....  }
}

Dann wolle ich das Interface implementieren mit

Code:
public class Row implements RowInterface {   
    .....

    public Cell getCell(int i) { ...  }

    public void setCell(Cell cell) { ... }
}


CellInterface und Cell sind auch implementiert.

Jetzt sagt der Konstruktor aber, dass ich bei der Row-Klasse nicht Cell als Parameter und Rückgabewert benutzen darf, sondern CellInterface benutzen muss. Ich habe immer gedacht, wenn eine Klasse ein Interface implementiert kann man sie auch immer dort einsetzen wo dieses Interface verlangt wird.

Ich könnte ja auch z.B. das CellInterface an setCell übergeben, aber dann könnten ja auch andere Klassen die das Interface implementieren übergeben werden, was ich ja nicht möchte, da es ja eine konkrete Implementation der Klasse ist und z.B. in der setCell Methode mit Methoden aus Cell gearbeitet wird, die im Interface nicht vorhanden sind. Ist das nicht erlaubt?

Wahrscheinlich habe ich einfach das Interface-Prinzip noch nicht verstanden. Es wäre echt nett, wenn mir vielleicht jemand erklären könnte, warum das so ist und wie mans richtig macht.
 

Solour

Aktives Mitglied
du musst deine cell vom typ des interfaces dann nach Cell casten.
die deklarationen müssen einfach übereinstimmen.
(ist da {...} code im interface?)
es geht ja auch nicht einen constructor im interface zu deklarieren...

bye
 
R

Roar

Gast
ab java 1.5 kannst du Cell als rückgabetyp in deiner Row klasse benutzt.
als parameter darfst du keine Cell verlangen. Die Methode im RowInterface gibt nur ein CellInterface als parameter vor. CellInterface ist aber nicht gleich Cell. Wenn du sagst: ich will eine Cell als parameter, widerspricht das der methodendeklaration im interface. Die sagt nämlich, dass ich der methode sowohl eine Cell als auch eine ColoredCell oder KartoffelsalatCell übergeben darf.
 
G

Guest

Gast
Danke, das hat mir schon ein bisschen weitergeholfen.

@Solour:
im Interface hab ich die Methoden nicht mit { ... } ist mir nur hier beim Schreiben passiert.
Ich meinte auch nicht Konstruktor sondern Compiler (ich bin schon ein bisschen durch den Wind :) )
 
G

Guest

Gast
Ich hab noch eine Frage.

Macht man das überhaupt so mit Interfaces.
Also ich möchte in der Anwendung auf eine Tabelle mit Zeilen, die wiederum Zellen enthalten, zugreifen. Ich möchte das aber so machen, dass man die Implementation der Tabelle einfach ausstauschen kann, deshalb wollte ich mit den Interfaces arbeiten, nur kommt mir das dann etwas unübersichtlich vor, wenn ich dann immer casten etc. muss.
 
R

Roar

Gast
denn entwirf deine interfaces halt so, dass du nicht casten musst, sonst bringen dir deine interfaces gar nix.
 
B

Beni

Gast
Ja, das macht man schon mit Interfaces. Aber wenn du casten musst, hast du irgendwas falsch gemacht ;-)
Meistens fehlen noch irgendwelche Methoden, wenn man casten muss. Überleg dir, welche Methoden noch fehlen (ich kann dir das auch nicht sagen), und füg sie dem Interface hinzu ;-)
 
G

Guest

Gast
Danke, ich glaub ich hab's jetzt schon besser begriffen.

Casten muss ich jetzt nicht mehr. Mir kam das halt nur komisch vor, dass ich bei z.B. getCell() als Returntyp CellInterface nehmen muss bei einer Klasse, die CellInterface implementieren will, und nicht Cell nehmen kann, das fände ich logischer, aber Roar hat ja schon gesagt, das es ab java 1.5 geht (ich benutze noch 1.4)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Interface als Parameter einer Klasse Java Basics - Anfänger-Themen 8
J Interface methode aufrufen (interface parameter) Java Basics - Anfänger-Themen 7
C Methoden-Parameter ist Interface Java Basics - Anfänger-Themen 5
S Generische Methode soll Objekte als Parameter erlauben die bestimmtes Interface implementieren^ Java Basics - Anfänger-Themen 9
E Object als Parameter das Unbekannt ist, aber ein bestimmtes Interface haben muss Java Basics - Anfänger-Themen 3
I No Jakarta Enterprise Beans found with interface ignorieren? Java Basics - Anfänger-Themen 2
I No EJB found with interface of type Java Basics - Anfänger-Themen 12
wolei Java generic interface in a generic class Java Basics - Anfänger-Themen 6
Say Abstrakt oder Interface Java Basics - Anfänger-Themen 3
Say public/default Interface Java Basics - Anfänger-Themen 9
D Interface Methode wird ungewollt in der Subklasse überschrieben Java Basics - Anfänger-Themen 5
W Intuitive interface für Komponenten Java Basics - Anfänger-Themen 4
I Browser integriert in Desktop Applikation - Webcam interface not found Java Basics - Anfänger-Themen 26
U Beispiel Methode size() vom "Collection"-interface... Wie kann man sichtbar machen, was die Methode unter der Haube macht? Java Basics - Anfänger-Themen 8
J Interface Comparable<T> Java Basics - Anfänger-Themen 10
M Interface oder Vererbung? Java Basics - Anfänger-Themen 12
D Interface Verständisfrage Java Basics - Anfänger-Themen 8
U Interface | constructor injection Java Basics - Anfänger-Themen 5
J Interface Interface korrekt implementieren Java Basics - Anfänger-Themen 5
A Methoden Vererbung und Interface Java Basics - Anfänger-Themen 14
T Interface Map und Map.Entry Java Basics - Anfänger-Themen 4
U Interface als PAramter (Vergleich) und ein Error Java Basics - Anfänger-Themen 9
I Interface von einer EJB Klasse, um Code zu reduzieren Java Basics - Anfänger-Themen 1
M Wie kann ich eine Methode aus einem Interface in eine Klasse implementieren, so dass sie ihre Funktion ausführt? Java Basics - Anfänger-Themen 7
I JSON und Interface Java Basics - Anfänger-Themen 3
Kotelettklopfer Kleines Testprogramm mit Interface und einer Usereingabe Java Basics - Anfänger-Themen 16
CptK Interface Functional interface mit mehreren Methoden Java Basics - Anfänger-Themen 6
L Interface & Comparable Java Basics - Anfänger-Themen 15
T Interface Java Basics - Anfänger-Themen 0
CptK Generics: Klassen die Interface implementieren, aber selbst nicht das Interface sind Java Basics - Anfänger-Themen 8
B Interface List - Objekt übergeben? Einzelnes Objekt geht, aber Liste nicht? Java Basics - Anfänger-Themen 4
B Best Practice Unschlüssig ob Vererbung oder Interface Java Basics - Anfänger-Themen 2
E abstrakte Klasse implementiert ein Interface Java Basics - Anfänger-Themen 40
C Interface und Konstruktor Java Basics - Anfänger-Themen 1
S Interface Equals und hashCode Java Basics - Anfänger-Themen 16
A Generische Klassen/Interface Java Basics - Anfänger-Themen 1
B Collections Objektreferenz-ID in der Ausgabe (Comparator Interface) Java Basics - Anfänger-Themen 2
A Interface Kuddelmuddel Java Basics - Anfänger-Themen 4
C Collections List über Interface zugreifen Java Basics - Anfänger-Themen 32
S Interface Interface und seine Implementierung Java Basics - Anfänger-Themen 5
H abstract und interface Java Basics - Anfänger-Themen 4
F Interface Casting Java Basics - Anfänger-Themen 13
C Telefonliste mit interface implementieren Java Basics - Anfänger-Themen 30
L Klassen Kann eine Unterklasse einer abstrakten Klasse ein Interface implementieren? Java Basics - Anfänger-Themen 2
H Interface Java Basics - Anfänger-Themen 2
R Quicksort mit Interface Comparable Java Basics - Anfänger-Themen 6
T Interface Methode im Interface mit mehreren Parametern Java Basics - Anfänger-Themen 10
B Interface vs Abstract Java Basics - Anfänger-Themen 2
B Objekte zählen/ Vererbung/ Kopplung/ Interface/ Abstract Class Java Basics - Anfänger-Themen 5
pkm Interface Funktionales Interface lässt sich nicht implementieren. Java Basics - Anfänger-Themen 2
Kornblume Comparable Interface für Objektvergleiche nutzen Java Basics - Anfänger-Themen 15
I Comparator<T> Interface als Methodenparamter Java Basics - Anfänger-Themen 4
J OOP Wie sollte ich das organisieren (Abstract? Interface?) Java Basics - Anfänger-Themen 33
J Java Interface/abstrakte Klassen Java Basics - Anfänger-Themen 2
E Interface nur von abstrakter Klasse implementierbar?! Java Basics - Anfänger-Themen 1
J Vererbung Abstrake Klasse <-> Interface Java Basics - Anfänger-Themen 5
C Interface als Datentyp eines Attributes? Java Basics - Anfänger-Themen 6
U Interface Bedeutung "Code to an interface rather than to an implementation." Java Basics - Anfänger-Themen 4
M Erste Schritte Prüfungsbeispiel: Interface / abstrakte Klassen Java Basics - Anfänger-Themen 8
M Maven Main-Methode Interface und Klasse Java Basics - Anfänger-Themen 2
R Interface Eigene Objekte in Listen sortieren mit Interface Comparable Java Basics - Anfänger-Themen 5
D Interface Amazon Skill Kit, Interface but method in other class? Java Basics - Anfänger-Themen 3
A Interface Abstrakte Interface Methode kann nicht benutzt werden Java Basics - Anfänger-Themen 10
J Compiler-Fehler class interface or enum expected Java Basics - Anfänger-Themen 1
T Vererbung und interface. Java Basics - Anfänger-Themen 1
N Interface Interface Erstellung Java Basics - Anfänger-Themen 3
kilopack15 Beziehung Interface - (abstrakte) Klasse -Unterklasse Java Basics - Anfänger-Themen 3
C Interface Fragen zum Interface Java Basics - Anfänger-Themen 7
Azazel Ist die abstract class das selbe wie ein interface ? Java Basics - Anfänger-Themen 33
K Interface: wie damit arbeiten Java Basics - Anfänger-Themen 4
lBlKha0s Fehlermeldung : class interface or enum expected Java Basics - Anfänger-Themen 9
T error: class, interface, or enum expected Java Basics - Anfänger-Themen 5
T Vererbung Interface Java Basics - Anfänger-Themen 5
F Interface aus anderem Package nutzen Java Basics - Anfänger-Themen 10
N Interface Daten einem Implementierten Interface zuweisen Java Basics - Anfänger-Themen 37
B Erste Schritte Wie definiere ich in Java ein Interface? Java Basics - Anfänger-Themen 6
L OOP Interface Prinzip? Java Basics - Anfänger-Themen 6
K Nutzung einer Klasse die das Iterator-Interface implementiert Java Basics - Anfänger-Themen 0
K Iterator-Interface implementieren mit Exception Handlung Java Basics - Anfänger-Themen 1
J Innerhalb Interfacemethode: Interface als Attribut Java Basics - Anfänger-Themen 2
A Frage zu Interface Java Basics - Anfänger-Themen 16
J Interface Java Basics - Anfänger-Themen 3
W Interface Java Basics - Anfänger-Themen 1
L Compiler-Fehler error: class, interface or enum expected Java Basics - Anfänger-Themen 2
G Interface java.util.Comparator: Wieso muss nur die Methode compare() implementiert werden Java Basics - Anfänger-Themen 2
N Generics Vererbung Wildcard Interface Java Basics - Anfänger-Themen 8
Shams Kann man von einem Interface aus auf die dieses implementierende Klasse zugreifen? Java Basics - Anfänger-Themen 4
J Frage zu dem Thema interface Java Basics - Anfänger-Themen 5
S Generics und Comparable Interface Java Basics - Anfänger-Themen 5
A Klasse,Vererbung,Interface,Singleton,Thread Java Basics - Anfänger-Themen 5
S Interface-Methode abrufen? Java Basics - Anfänger-Themen 2
G Vererbung Klasse erbt von abstrakter Klasse implementiert Interface Java Basics - Anfänger-Themen 2
M Konstanten in einem Interface definieren Java Basics - Anfänger-Themen 1
P interface Java Basics - Anfänger-Themen 1
F eigenes Listener Pattern mit Interface Java Basics - Anfänger-Themen 1
M Interface als Datentyp Java Basics - Anfänger-Themen 12
K Interface Methoden überschreiben Java Basics - Anfänger-Themen 1
C Klassendesign / Wann Interface implementieren und wann Klassen vererben? Java Basics - Anfänger-Themen 3
A Interface in Collection (Liste) angeben Java Basics - Anfänger-Themen 2
G Interface klasse Java Basics - Anfänger-Themen 4

Ähnliche Java Themen


Oben