Drawable und Moveable in Quaxli 2D Spiele Tutorial

A

Andi321

Gast
In dem Tutorial werden zwi Interface ertellt Drawable und Moveable. In diesem Interface werden Methoden geschrieben die leer sind.Da hab ich mich gefragt,wieso man das überhaupt macht.
 
F

Firephoenix

Gast
Weil man in Java nunmal versucht gegen Interfaces zu implementieren.

Nehmen wir mal an du hättest 4 verschiedene Auto-Klassen:
BMW, Audi, VW, Mercedes.

Jede hat eine fahren() - Methode.

Jetzt fahr mal mit jedem Auto in deinem Programm.

Um dir alle Autos zu merken die Fahren können brauchst du eine Liste oder etwas ähnliches, in dem Fall aber entweder 1 extra-liste pro auto-klasse, oder eine Liste aus Object auf der aufrufe dann so aussehen:

für jedes object aus der liste:
bist du ein bmw: dann nach bwm casten und fahren aufrufen
bist du ein audi: dann nach audi casten und fahren aufrufen
...

hättest du dagegen ein Interface FahrbaresObjekt mit einer fahren()-Methode könntest du einfach eine Liste von FahrbaresObjekt erstellen, alle deine Autos da einfügen (da sie das Interface implementieren sind sie zu der Liste zuweisungskompatibel) und wenn du dann mit jedem Auto fahren willst sagst du nur noch:
für jedes FahrbaresObjekt aus der Liste : fahren()
Damit wird die richtige fahren()-Methode aufgerufen die dein konkretes Auto hat, aber der Code wird wesentlich lesbarer und einfacher zu pflegen.

Gruß
 

Final_Striker

Top Contributor
In dem Tutorial werden zwi Interface ertellt Drawable und Moveable. In diesem Interface werden Methoden geschrieben die leer sind.Da hab ich mich gefragt,wieso man das überhaupt macht.

Stehst da und nachfolgend doch gut beschrieben?

Um für die Klasse Sprite einheitliche Methoden zur Verfügung zu stellen, definieren wir
zunächst 2 Interfaces. Auch dies ist zunächst einmal zusätzlicher Aufwand
(zugegebenermaßen relativ gering) wird uns aber später das Leben erleichtern.
 
A

Andi321

Gast
Also ist es in diesem Fall nötig , damit man diese dann alle in einen gemeinsamen Vector einfügen und dann die Methoden bei bedarf aufrufen.
 
A

Andi321

Gast
Es steht nur da , dass die Schnittstellen das Leben erleitern werden , aber nicht wieso und an welcher Stelle.
Könnte mir das jemand bitte erklären :)
 

Fu3L

Top Contributor
Genau wegen dem, was du in dem zweiten Teilsatz sagst:
Man kann alle Drawables oder alle Moveables in einer Liste speichern und beim Zeichnen durchlaufen.
Da macht es keinen unterschied, ob das eine ein Baum oder der große Held ist. In der Zeichenmethode sind alle gleich: Nämlich Drawables. So kann die Zeichenmethode stumpf durchgehen und einfach auf allen Elementen der Liste drawObject(g); aufrufen.
 

Ähnliche Java Themen

Neue Themen


Oben