Interface Verständnisprobleme von Interfaces

danoob

Mitglied
Hallo zusammen!

Ich hatte heute meine erste Vorlesung in Java und bin ein bisschen überfordert! Wir haben uns mit Interfaces beschäftigt. Ich habe verstanden, dass ich in einem Interface Methoden definieren kann (abstract). Alle Klassen die das Interface implementieren müssen diese Methode vom Namen her übernehmen.

Jetzt habe ich folgendes Problem:

Ich habe 4 Klassen. Main, Test2, Supertest, Interface

Main Klasse:

Java:
import java.util.ArrayList;




public class Main {


	public Main() {
		// TODO Auto-generated constructor stub
	}


	public static void main(String[] args) {
		// TODO Auto-generated method stub




		
		iTestInterface test = new Supertest();	
		iTestInterface test2 = new Test2();
		iTestInterface [] TestArray = new iTestInterface [5];
		TestArray [0]= test;
		TestArray [1]= test2;
		TestArray [2]= test;
		TestArray [3]= test2;
		TestArray [4]= test;
		
		for(int i=0; i<5; i++){
			TestArray[i].willy();
		}
		
		ArrayList <iTestInterface> List= new ArrayList<iTestInterface>();
		List.add(test);
		List.add(test2);
		
		for(int i=0;i<List.size();i++){
			List.get(i).willy();
			
		}
	}


}

Test 2:

Java:
public class Test2 implements iTestInterface {


	public Test2() {
		// TODO Auto-generated constructor stub
	}


	@Override
	public void willy() {
		// TODO Auto-generated method stub
		System.out.println("Hey Ich bin Willi aus test2");
	}


	@Override
	public void maya() {
		// TODO Auto-generated method stub
		
	}


}

Supertest:

Java:
public class Supertest extends Test implements iTestInterface {


	public Supertest() {
		// TODO Auto-generated constructor stub
	}


	@Override
	public void weissNochNicht() {
		// TODO Auto-generated method stub


	}


	@Override
	public void willy() {
		// TODO Auto-generated method stub
		System.out.println("Hi ich bin Willi aus Supertest");
	}


	@Override
	public void maya() {
		// TODO Auto-generated method stub
		System.out.println("Maya Supertest");
	}


}

und das Interface:

Java:
public interface iTestInterface {
	
	public abstract void willy();
	public abstract void maya();


}


Meine 1. Frage ist, was genau passiert in der Main Klase bei
Java:
 iTestInterface test = new Supertest();

und meine 2. Frage ist, warum wird mir nicht auch Maya Supertest ausgegeben, schließlich habe ich das ja in eine Methode aus dem Interface geschrieben...

Sorry für die vielen dummen Fragen... und vielen Dank für eure Hilfe!
 

consider

Mitglied
2. Du rufts die Methode maya() doch nirgends auf.

1. Eine Object welches ein Interface implementiert ist auch immer von dessen Typ. Und genau das passiert hier. Ein Superklasse-Object wird als Typ iTestIterface referenziert. Damit ist sichergstellt, dass das unter "test" referenzierte Object die Methoden maya und willy enthält.
 
Zuletzt bearbeitet:

danoob

Mitglied
Ok!
1. Habe ich verstanden!

Aber bei 2. hab ich noch Probleme! Ich rufe Willy doch auch nicht dezidiert auf, und er gibt mir was aus! Desshalb dachte ich wenn ich in die Maya Methode auch ein system.out.println packe, dass die mir ebenfalls was ausgibt, sobald ich das Objekt test, welches ja vom Typen des Intefaces ist und somit eigentlich die Methode enthalten muss, anspreche!

Wo ist mein Denkfehler?

Danke für die schnelle Antwort!
 

asynero

Mitglied
In den beiden for schleifen rufst du die .Willy Methode auf.
Aber die Maya Methode rufst du nie auf, wenn du die zweite for schleife änderst und willy mit maya tauscht, solltest du du auch die ausgabe von maya der superklasse bekommen und für die test classe nichts, da du hier nichts definierst hast.


gruß
 

consider

Mitglied
Das Interface an sich, "macht" noch garnichts weiter. Es schreibt nur vor, dass eine implementuierende Klasse eben die Methoden des Interfaces bereit stellen muss. Es ist so zu sagen nur eine Beschreibung. wie die Methoden genau implementiert werden und wann sie aufgerufen werden ist nicht Sache des Inerfaces. Es sagt nur "Wenn du mich implementierst , dann musst du die Methode maya und willy haben" mehr nicht.

Was passiert genau? Du hast in deiner Mainmethode ein Array, welches iTestInterface Objekte enthält. Egal was das sonst für Objekte sind, ob nun Test2 oder SuperTest oder Schießmichtot, dadurch, dass sie vom Typ iTestInterface sind müssen sie alle die Methoden willy und maya besitzen, denn sie implementieren dieses Interface und das schreibt dies nun mal vor (und macht sonst nichts ;) ).

Dadurch ist es möglich auf alle Felder des Arrays die willy Methode aufzurufen, ohne dass die Gefahr besteht, dass irgendein Objekt diese garnicht besitzt. Und genau das tust du in der Forschleife ja auch.

Das selbe Spiel weiter unten mit der Liste. Auch hier rufst du auf alle Listenmember die willy Methode auf, die ja vorhanden sein MUSS, da es sich um eine Liste mit ITestInterface Objekten handelt.

Maya rufst du nirgends auf, deswegen wird die Methode natürlich entsprechend auch nicht ausgeführt. Wenn du jetzt, wie asynero schon schrieb, entweder auf die Listen oder die Arrayelemente maya aufrufst, bekommst du auch deine gewünschte Ausgabe.
 

danoob

Mitglied
Ahh!

Ok! Klar, habs gefunden! Danke für eure Hilfe! Das natürlich logisch, wenn ich Maya nicht aufrufe... kann ich auch nichts von erwarten :lol:
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
L JavaFX - grundlegende Verständnisprobleme Java Basics - Anfänger-Themen 1
gstarplayer [Verständnisprobleme] Java next(),nextLine,nextInt und parseInt! Java Basics - Anfänger-Themen 22
? Klassen Verständnisprobleme mit Klassen und Metohden Java Basics - Anfänger-Themen 5
? Klassen Verständnisprobleme mit Import Anweisungen Java Basics - Anfänger-Themen 6
J Verständnisprobleme bei Arrays Java Basics - Anfänger-Themen 3
J Erste Schritte türme von hanoi verständnisprobleme Java Basics - Anfänger-Themen 6
S Verständnisprobleme wie Java Programme ablaufen Java Basics - Anfänger-Themen 6
K JNI Verständnisprobleme Java Basics - Anfänger-Themen 4
B verständnisprobleme bei Aufgabenstellung Java Basics - Anfänger-Themen 25
M Verständnisprobleme mit Klassennutzung Java Basics - Anfänger-Themen 9
c_sidi90 Hilfe bei GUI Verständnisprobleme Java Basics - Anfänger-Themen 13
A Mal wieder Verständnisprobleme Java Basics - Anfänger-Themen 3
A Code-Verständnisprobleme Java Basics - Anfänger-Themen 10
A Verständnisprobleme eines Lösungscodes Java Basics - Anfänger-Themen 9
B Objektoerientiertes Programmieren, Verständnisprobleme Java Basics - Anfänger-Themen 4
megachucky JDBC-Grundlagen: Verständnisprobleme Java Basics - Anfänger-Themen 31
S Rekursion: Verständnisprobleme Java Basics - Anfänger-Themen 12
D Interfaces von Interfaces macht das noch Sinn? Java Basics - Anfänger-Themen 21
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 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
2 Interfaces, Polymorphie und Methoden. Java Basics - Anfänger-Themen 14
A Obstlager Interfaces Java Basics - Anfänger-Themen 7
K Theor. Frage zu Interfaces Java Basics - Anfänger-Themen 30

Ähnliche Java Themen

Neue Themen


Oben