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:
Test 2:
Supertest:
und das Interface:
Meine 1. Frage ist, was genau passiert in der Main Klase bei
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!
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!