v4.x/Interfaces: Unterschied zwischen den Versionen
Mike (Diskussion | Beiträge) K (→Interfaces) |
Mike (Diskussion | Beiträge) K (→Interfaces) |
||
Zeile 7: | Zeile 7: | ||
In der Edu-Variante der Engine-Alpha gibt es | In der Edu-Variante der Engine-Alpha gibt es | ||
− | * das '''Interface <code>TastenReagierbar</code>''' mit | + | * das '''Interface <code>TastenReagierbar</code>''' mit den '''Methoden <code>tasteReagieren( int taste )</code> , <code>tasteLosgelassenReagieren( int taste )</code> , <code>istTasteGedrueckt( int taste )</code>'''. <br>''Damit kann jede deiner Klasse auf Tastatur-Ereignisse reagieren.'' |
* das '''Interface <code>Ticker</code>''' mit der '''Methode <code>tick()</code>'''. <br>''Damit können Aufgaben in gleichen Zeitintervallen wiederholt werden.'' | * das '''Interface <code>Ticker</code>''' mit der '''Methode <code>tick()</code>'''. <br>''Damit können Aufgaben in gleichen Zeitintervallen wiederholt werden.'' | ||
− | * das '''Interface <code>MausklickReagierbar</code>''' mit | + | * das '''Interface <code>MausklickReagierbar</code>''' mit den '''Methoden <code>klickReagieren( double x , double y )</code> , <code>klickLosgelassenReagieren( double x , double y )</code>'''. <br>''Damit kann jede deiner Klasse auf Maus-Klicks reagieren.'' |
* das '''Interface <code>MausradReagierbar</code>''' mit der '''Methode <code>tasteReagieren( int zaehler )</code>'''. <br>''Damit kann jede deiner Klasse auf Mausrad-Ereignisse reagieren.'' | * das '''Interface <code>MausradReagierbar</code>''' mit der '''Methode <code>tasteReagieren( int zaehler )</code>'''. <br>''Damit kann jede deiner Klasse auf Mausrad-Ereignisse reagieren.'' |
Version vom 11. Juni 2023, 12:19 Uhr
Interfaces
Ein Interface gleicht im Prinzip einer Super-Klasse, von der man erben kann. Der Unterschied zur Super-Klasse besteht darin, dass - vereinfacht gesagt - bei einem Interface nur Methoden vererbt werden wohingegen eine Super-Klasse auch Attribute vererben kann. Bei Super-Klassen erbt man mit dem Schlüsselwort extends
wohingegen man von einem Interface mit dem Schlüsselwort implements
erbt. Sehr oft sind die Methoden eines Interfaces nur Signaturen, das heißt Methoden-Köpfe ohne Rumpf. Der Rumpf wird erst in der Sub-Klasse implementiert. Man spricht dann von überschreiben der Methode. Meist gibt ein Interface eine Funktionalität vor und in der Sub-Klasse kann man frei entscheiden, wie auf diese Funktionalität konkret reagiert werden kann.
In der Edu-Variante der Engine-Alpha gibt es
- das Interface
TastenReagierbar
mit den MethodentasteReagieren( int taste )
,tasteLosgelassenReagieren( int taste )
,istTasteGedrueckt( int taste )
.
Damit kann jede deiner Klasse auf Tastatur-Ereignisse reagieren.
- das Interface
Ticker
mit der Methodetick()
.
Damit können Aufgaben in gleichen Zeitintervallen wiederholt werden.
- das Interface
MausklickReagierbar
mit den MethodenklickReagieren( double x , double y )
,klickLosgelassenReagieren( double x , double y )
.
Damit kann jede deiner Klasse auf Maus-Klicks reagieren.
- das Interface
MausradReagierbar
mit der MethodetasteReagieren( int zaehler )
.
Damit kann jede deiner Klasse auf Mausrad-Ereignisse reagieren.
- das Interface
BildAktualisierungReagierbar
mit der MethodebildAktualisierungReagieren( double zeitIntervall )
.
Damit kann jedes Objekt deiner Klasse im Grafikfenster automatisch aktualisiert werden.
- das Interface
KollisionsReagierbar
mit der sondierenden MethodekollisionReagieren( EduActor ea )
.
Damit kann jede deiner Klasse auf Kollision mit einem anderen Objekt reagieren.
Die meisten dieser Methoden sind in der Klasse SPIEL
bereits vorhanden und du kannst sie in Sub-Klassen von SPIEL
überschreiben.
Manchmal möchte man aber ohne SPIEL
auskommen oder hat darüber hinausgehende Bedürfnisse. Dann sind diese Interfaces sehr nützlich.