Hallo,
wenn ich ein Interface A definieren, welches z.B. eine Methode figh() vorgibt, dann müssen ja alle Klassen, die dieses Interface implementieren rechne implementieren. Eine Referenzvariable
A testvariable kann also alle Objekte aufnehmen, die das Interface mittels implements implementieren. Nun meine Frage:
Angenommen ich habe eine Klasse Bauer, welche die Methode fight() implementiert, also auch das Interface A. Ich müsste ja
class Bauer implements A {
... fight()
}
schreiben. Wieso ist es nicht möglich einfach
class Bauer {
...fight()
}
zu schreiben. Der Compiler müsste doch erkennen, dass wenn ich testvariable ein Bauer Objekt übergebe die fight() Methode dort vorhanden ist. Also es könnte doch immer geprüft werden, ob die von A geforderten Methoden in einem Objekt vorhanden sind. Wieso muss ich explizit kennzeichnen, dass ich ein bestimmtes Interface meine...
Egal was ich A testvariable zuweise, einfach nur prüfen, ob die zugewiesenen Objekte die Methode fight() implementieren. Was nützt da die explizite implements A Angabe? Der Compiler könnte doch auch so prüfen, ob die Methoden alle vorhanden sind, ohne das ich immer implements schreibe. Was ist also der Vorteil, wenn nicht einfach nur geprüft wird ob die konkreten Objekte alle benötigen (Interface) Methoden implementieren sondern ich noch explizit angeben, dass es sich um eine Implementation des konreten Interfaces handelt.
Wenn ich also eine Klasse Turm schreiben würde, könnte die ja auch einfach die Methode fight() implementieren.
class Turm() {
fight()
}
A testvariable = new Turm();
Wenn das gehen würde, bräuchte ja nur geprüft werden ob turm fight implementiert, da ich Turm testvariable zuweise. Ohne das ich noch extra implements schreiben müsste.
wenn ich ein Interface A definieren, welches z.B. eine Methode figh() vorgibt, dann müssen ja alle Klassen, die dieses Interface implementieren rechne implementieren. Eine Referenzvariable
A testvariable kann also alle Objekte aufnehmen, die das Interface mittels implements implementieren. Nun meine Frage:
Angenommen ich habe eine Klasse Bauer, welche die Methode fight() implementiert, also auch das Interface A. Ich müsste ja
class Bauer implements A {
... fight()
}
schreiben. Wieso ist es nicht möglich einfach
class Bauer {
...fight()
}
zu schreiben. Der Compiler müsste doch erkennen, dass wenn ich testvariable ein Bauer Objekt übergebe die fight() Methode dort vorhanden ist. Also es könnte doch immer geprüft werden, ob die von A geforderten Methoden in einem Objekt vorhanden sind. Wieso muss ich explizit kennzeichnen, dass ich ein bestimmtes Interface meine...
Egal was ich A testvariable zuweise, einfach nur prüfen, ob die zugewiesenen Objekte die Methode fight() implementieren. Was nützt da die explizite implements A Angabe? Der Compiler könnte doch auch so prüfen, ob die Methoden alle vorhanden sind, ohne das ich immer implements schreibe. Was ist also der Vorteil, wenn nicht einfach nur geprüft wird ob die konkreten Objekte alle benötigen (Interface) Methoden implementieren sondern ich noch explizit angeben, dass es sich um eine Implementation des konreten Interfaces handelt.
Wenn ich also eine Klasse Turm schreiben würde, könnte die ja auch einfach die Methode fight() implementieren.
class Turm() {
fight()
}
A testvariable = new Turm();
Wenn das gehen würde, bräuchte ja nur geprüft werden ob turm fight implementiert, da ich Turm testvariable zuweise. Ohne das ich noch extra implements schreiben müsste.