2019-11-09 11:12:48 +00:00
parent e5b007cced
commit 56af904b40

@@ -1,11 +1,18 @@
## Definition und Implementierung ## Definition
- Interfaces können von jeder Klasse von jeder Stelle aus implementiert werden (bei inneren Interfaces unter Angabe des äußeren `implements I1.I2`
- Formal sind sie nicht `public`, verhalten sich aber so. Wenn angegeben, dann in eigene Datei schreiben.
- Interfaces sind per default `abstract`. Darf aber angegeben werden - Interfaces sind per default `abstract`. Darf aber angegeben werden
- Methoden sind immer implizit `public` und daneben auch `abstract`, wenn nicht `static` oder `default`. - Methoden sind immer implizit `public` und daneben auch `abstract`, wenn nicht `static` oder `default`.
- Felder sind immer Konstanten: `public static final`, müssen also auch initialisiert werden - Felder sind immer Konstanten: `public static final`, müssen also auch initialisiert werden
- Initialisierungsblöcke **nicht** erlaubt, weder statisch noch normal. - Initialisierungsblöcke **nicht** erlaubt, weder statisch noch normal.
## Implementierung
- Interfaces können von jeder Klasse von jeder Stelle aus implementiert werden (bei inneren Interfaces unter Angabe des äußeren `implements I1.I2`
- Formal sind sie nicht `public`, verhalten sich aber so. Wenn angegeben, dann in eigene Datei schreiben.
- Alle Methoden müssen implementiert werden
- Regeln zum Überschreiben beachten (Sonst evtl. Überladen und damit nicht implementiert)
- Keine neuen **Checked** Exceptions
- Bestehende Checked Exceptions höchstens Subklasse
- Exceptions aus Interface müssen nicht angegeben werden, gelten aber! (Gilt auch für abstrakte Klassen)
## Static und default-Methoden ## Static und default-Methoden
- -
- Müssen von implementierenden Klassen nicht implementiert werden - Müssen von implementierenden Klassen nicht implementiert werden