Interfaces, Polymorphie und Methoden.

23

Bekanntes Mitglied
Hallo :)

ich befinde mich in einem Framework das ein InterfaceA und ein InterfaceB hat.

Eine Klasse des Frameworks hat entweder InterfaceA oder InterfaceB oder beide implementiert.

Ich kann diese Klassen, welche die Interfaces implementieren nicht verändern!


Ich hätte gerne eine Methode die ein Objekt der Klasse erwartet, die BEIDE Interfaces implementiert. Wie stelle ich das an? Geht das überhaupt?

public void bla(InterfaceA&InterfaceB obj);

Danke
 
T

Tomate_Salat

Gast
Ja mit Generics
Java:
public class Generics
{
	public <T extends A & B> void bla(T data)
	{
		data.inA();
		data.inB();
	}
}

interface A
{
	public void inA();
}

interface B
{
	public void inB();
}
 

@x.l

Bekanntes Mitglied
Du könntest dir eine abstrakte Hilfsklasse bauen.

Java:
public abstract Helper implements InterfaceA, InterfaceB {

    // dein Code

}

#edit: Die Variante von TS ist natürlich schicker. *THUMBS UP*
 
Zuletzt bearbeitet:

Suinos

Bekanntes Mitglied
Du kannst ein weiteres Interface erstellen, welches von den anderen beiden erbt:
Java:
private interface A
{
	void a();
}

private interface B
{
	void b();
}

private interface AB extends A, B
{
	@Override
	public void a();
	
	@Override
	public void b();
}
(ot: Kann man hier von Vererbung sprechen? Oder lieber Erweiterung?)
 

23

Bekanntes Mitglied
Hey,

die einzigste Lösung die funktioniert ist die von Tomate_Salat und die ist ziemlich krank =D Danke!!

Ihr andern habt die Frage nicht ganz verstanden!

"Ich kann diese Klassen, welche die Interfaces implementieren nicht verändern!" Mir bringt ein neues Interface überhaupt nichts da ich die Klasse nicht verändern kann!

Bsp:
Java:
//Feste Klassen und Interfaces
public class W implements A { }
public class X implements B { }
public class Z implements A, B { }

//Wenn ich nun so etwas mache
public interface AB extends A, B {}

//bringt mich das nicht weiter weil die Klasse Z zwar A,B implementiert aber nicht AB
//=>das geht nicht:

//meinemethode(AB obj);

meinemethode(Z);
 
Zuletzt bearbeitet:

23

Bekanntes Mitglied
@Tomate_Salat

Wenn ich den Datentyp bzw. die Ref auf das Objekt als member einer Klasse haben möchte, habe ich dann nur die möglichkeit zu schreiben:

Java:
private T objausmethode; <- geht nicht, hm ich brauche wohl dann doch ein neues Interface...

Edit: Wie merke ich mir die Ref.??? :D
 
Zuletzt bearbeitet:
T

Tomate_Salat

Gast
die einzigste Lösung die funktioniert ist die von Tomate_Salat und die ist ziemlich krank =D Danke!!
Juhu gewonnen :lol: . Was heist den hier Krank ;-). Dafür sind Sie da, zudem bist du ziemlich Flexibel mit dem ganzen. Und btw wäre auch soetwas gegangen:

Java:
public void bla(Object blubb)
{
    A a = (A) blubb;
    Helper helper= (Helper) blubb;
    AB ab= (AB) blubb;
}

Insofern wären die Vorgänger iwie doch möglich gewesen ;-)

MFG

Tomate_Salat
 
B

bygones

Gast
tomtates vorschlag ist eben dass du allgemeine Verwender akzeptierst, ohne diesen noch eine weitere Struktur aufzubrummen...
 
T

Tomate_Salat

Gast
@Tomate_Salat

Wenn ich den Datentyp bzw. die Ref auf das Objekt als member einer Klasse haben möchte, habe ich dann nur die möglichkeit zu schreiben:

Java:
private T objausmethode;

Edit: Wie merke ich mir die Ref.??? :D

Java:
public class Generics<T extends A & B>
{
	private T ref;
	
	public void bla(T data)
	{		
		data.inA();
		data.inB();
	}
}

anderster wüsste ich es spontan auch nicht, kenne Generics nur aus eigenem Interesse und habe Sie bisher noch nie (in eigenen Methoden/Klassen) gebraucht. (also abgesehen von List<Object> o.ä.)

Edit oder eben als Object:
Java:
public class Generics
{
	private Object ref;
	
	public <T extends A & B> T getT()
	{
		return (T) ref;
	}
	
	
	public <T extends A & B> void bla(T data)
	{		
		ref	= data;
	}
 
Zuletzt bearbeitet von einem Moderator:

23

Bekanntes Mitglied
private T ref;

geht leider nicht :(

Ich habe jetzt einfach ein internes Interface gebaut und casten dann den Typ. <T extends A & B> ist quasi die Bedingung zur Nutzung der Methode...

Und die Lösung:

Java:
public void bla(Object blubb)
{
    A a = (A) blubb;
    Helper helper= (Helper) blubb;
    AB ab= (AB) blubb;
}

Hätte auch noch den Nachteil, dass Eclipse den Typ nachdem der Code geschrieben worden ist nicht kennt ;)

Edit: Das neue Interface bringt doch nichts... ich muss jedesmal wenn ich die Funktionen aus A oder B will explizit casten... :)
 
Zuletzt bearbeitet:
T

Tomate_Salat

Gast
[c]private Object ref; [/c]
hier ist deine Referenz als Objekt gespeichert, du musst erst wieder auf die Klasse/das Interface casten, mit dem du arbeiten willst. Ansonsten ists ja klar, dass er nur die Methoden von Object kennt :-/
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Methodenaufrufe abstrakte Klassen, Interfaces Java Basics - Anfänger-Themen 17
M Wozu dient Interfaces? Java Basics - Anfänger-Themen 6
O Mehrfachvererbung auf Spezifikations- und Implementierungsebene in Java. Interfaces Java Basics - Anfänger-Themen 19
U Funktionale Interfaces mit mehreren abstrakten Methoden? Java Basics - Anfänger-Themen 8
M Interfaces Aufgabe Java Basics - Anfänger-Themen 2
I JSON / XML Struktur mit Vererbung / Interfaces Java Basics - Anfänger-Themen 0
I XML und Interfaces aus anderen Projekten Java Basics - Anfänger-Themen 3
8u3631984 Record - Interfaces Java Basics - Anfänger-Themen 4
M Wie kann ich in einem Konstruktor die Methode eines anderen Interfaces mit den jeweiligen Parametern aufrufen? Java Basics - Anfänger-Themen 8
H Sinn von Interfaces Java Basics - Anfänger-Themen 21
B JaxB und Interfaces? Java Basics - Anfänger-Themen 2
M Funktionale Interfaces Java Basics - Anfänger-Themen 3
Kirby.exe Frage zur Verwendung von Interfaces Java Basics - Anfänger-Themen 6
H Frage zu interfaces Java Basics - Anfänger-Themen 1
J Zweck von Interfaces immer noch nicht klar Java Basics - Anfänger-Themen 3
M Klasse erbt von Interfaces Java Basics - Anfänger-Themen 6
T Interfaces in erbenden Klassen Java Basics - Anfänger-Themen 2
T Abstrakte Klasse und Interfaces Java Basics - Anfänger-Themen 12
H Polymorphie Interfaces und statischer Typ Java Basics - Anfänger-Themen 33
T Verständnisfrage zu Interfaces Java Basics - Anfänger-Themen 7
F Exceptions in Interfaces Java Basics - Anfänger-Themen 4
F Interface Warum Interfaces? Java Basics - Anfänger-Themen 5
R interfaces Java Basics - Anfänger-Themen 1
B Interfaces Java Basics - Anfänger-Themen 6
A Vererbung/Interfaces/Generics Java Basics - Anfänger-Themen 12
D Interface Wieso Aufruf aller Methoden eines Interfaces? Java Basics - Anfänger-Themen 11
J Interfaces? Java Basics - Anfänger-Themen 32
M Erstellung Interfaces....totale Anfängerfrage Java Basics - Anfänger-Themen 16
S Erste Schritte Innere Klassen und Interfaces Java Basics - Anfänger-Themen 2
J Wofür dienen Interfaces ? Java Basics - Anfänger-Themen 1
Hijo2006 Frage zu Interfaces Java Basics - Anfänger-Themen 21
Hacer Interfaces implementieren Java Basics - Anfänger-Themen 7
H Implementierung eines Interfaces erweitern Java Basics - Anfänger-Themen 13
L Via Interfaces unterschiedliche Klassen ansprechen Java Basics - Anfänger-Themen 8
A Verwendung von Interfaces Java Basics - Anfänger-Themen 7
J Interfaces Java Basics - Anfänger-Themen 15
D Frage bzgl. Interfaces Java Basics - Anfänger-Themen 10
D Interface Verständnisprobleme von Interfaces Java Basics - Anfänger-Themen 5
D Interface Interfaces und abstrakte Klassen implementieren Java Basics - Anfänger-Themen 4
S Rollen verändern, Interfaces austauschen wie? Java Basics - Anfänger-Themen 10
K Interfaces/Klassen etc. Java Basics - Anfänger-Themen 6
F Implementierung von Interfaces -> Problem mit main Java Basics - Anfänger-Themen 12
S Verständnisproblem bei Interfaces Java Basics - Anfänger-Themen 6
I Interface Verständnisfrage Interfaces (Bsp.: Enumeration) Java Basics - Anfänger-Themen 2
M Frage zu Generics in Klassen, Abstrakten Klassen und Interfaces Java Basics - Anfänger-Themen 5
O Java Interfaces für andere Programmiersprachen zur Verfuegung stellen? Java Basics - Anfänger-Themen 2
K Interface Generics, Interfaces und Listen - ich bin verwirrt. Java Basics - Anfänger-Themen 7
G Instanzen eines Interfaces erzeugen Java Basics - Anfänger-Themen 7
M Compiler-Fehler Alle Methoden eines Interfaces Implementiert dennoch Fehler Java Basics - Anfänger-Themen 3
V Interface Interfaces und abstrakte Klassen Java Basics - Anfänger-Themen 3
F Best Practice UML/Planung eines Projektes (Klassen, Interfaces, ...) Java Basics - Anfänger-Themen 0
V Vererbung Vererbung, Interfaces und OOP... Java Basics - Anfänger-Themen 10
C Sinn eines Interfaces? Java Basics - Anfänger-Themen 4
A Interface Poymorphismus bei Interfaces Java Basics - Anfänger-Themen 2
Pentalon Eclipse JUNO keine Vorschläge von Methoden bzw. Interfaces der eigenen Klassen Java Basics - Anfänger-Themen 5
R Mehrere Interfaces(Comparable, ...) Java Basics - Anfänger-Themen 2
J Interfaces Abstrakte Klassen Java Basics - Anfänger-Themen 15
D Interfaces und allgemeingültige Methodenaufrufe Java Basics - Anfänger-Themen 6
H Erste Schritte 2 User Interfaces für eine Anwendung Java Basics - Anfänger-Themen 7
S OOP Wann Proxies und Interfaces? Java Basics - Anfänger-Themen 3
M Interface @Inject mit Interfaces? Java Basics - Anfänger-Themen 2
F Interface Unterschied von Attributen und Methoden bei abstrakten Klassen und Interfaces Java Basics - Anfänger-Themen 5
V mehrfachvererbung unter interfaces Java Basics - Anfänger-Themen 10
J Interface Wie funktioniert das mit den Interfaces. Ich verstehe es einfach nicht! :( Java Basics - Anfänger-Themen 15
T Interfaces und Implementierungen Java Basics - Anfänger-Themen 12
S Interface mehrere Interfaces Java Basics - Anfänger-Themen 2
M Vererbung Problem bei Interfaces Java Basics - Anfänger-Themen 8
H Dynamische Bindung mit Interfaces und LinkedList Java Basics - Anfänger-Themen 7
F Interfaces Java Basics - Anfänger-Themen 4
M Frage zu Interfaces Java Basics - Anfänger-Themen 3
N Generics und Interfaces Java Basics - Anfänger-Themen 5
D Abstrakte Klassen und Interfaces als Paramter in Funktionen Java Basics - Anfänger-Themen 3
P OOP Aufruf eines Interfaces Java Basics - Anfänger-Themen 4
N OOP Vererbung von Interfaces Java Basics - Anfänger-Themen 12
S Verständnisfrage zu Interfaces Java Basics - Anfänger-Themen 2
D Sinn von Interfaces - Wozu? Java Basics - Anfänger-Themen 9
P Frage zu Interfaces Bsp. Java Basics - Anfänger-Themen 9
A Deklarationen in abstrakten Klassen und Interfaces Java Basics - Anfänger-Themen 11
R Adapterklassen vs Interfaces Java Basics - Anfänger-Themen 6
P Interfaces -> eins oder mehrere für eine Anwendung? Java Basics - Anfänger-Themen 9
A Obstlager Interfaces Java Basics - Anfänger-Themen 7
K Theor. Frage zu Interfaces Java Basics - Anfänger-Themen 30
T Frage zu Interfaces und Abstrakten Klassen Java Basics - Anfänger-Themen 4
J Interfaces Java Basics - Anfänger-Themen 14
L Interfaces Java Basics - Anfänger-Themen 5
J spiel "Gefangenendilemma" Probleme mit Interfaces Java Basics - Anfänger-Themen 8
H Interfaces in java? Java Basics - Anfänger-Themen 2
A OOP Interfaces mit gleichem Methoden Java Basics - Anfänger-Themen 15
T Interfaces: Braucht man abstrakte Klassen eigentlich noch? Java Basics - Anfänger-Themen 3
S Implementierung gegen Interfaces / List, ArrayList, LinkedList Java Basics - Anfänger-Themen 11
D Interfaces / Schnittstellen Java Basics - Anfänger-Themen 8
I Probleme mit Interfaces Java Basics - Anfänger-Themen 4
K Interfaces "Schreibaufwand" Java Basics - Anfänger-Themen 53
I Interfaces Java Basics - Anfänger-Themen 34
bigbasti Warum genau braucht man Interfaces? Java Basics - Anfänger-Themen 10
A Programmieren gegen Interfaces Java Basics - Anfänger-Themen 4
I Frage zu Collection und List Interfaces Java Basics - Anfänger-Themen 2
7 Interfaces - Aufbau Java Basics - Anfänger-Themen 9
G Interfaces mit gleichen Methoden Java Basics - Anfänger-Themen 4
U Interfaces und ihre Daseinsberechtigung Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben