@@ -25,8 +25,11 @@ Interfaces können konkrete Implementierungen haben (`default`)
|
|||||||
Oberklasse deklariert Checked Exceptions, Unterklasse nicht mehr.
|
Oberklasse deklariert Checked Exceptions, Unterklasse nicht mehr.
|
||||||
Wenn Oberklasse als Typ deklariert muss die Exception behandelt werden, auch wenn zur Laufzeit Unterklasse vorhanden ist. **Compilefehler**, da Compiler Exceptions prüft.
|
Wenn Oberklasse als Typ deklariert muss die Exception behandelt werden, auch wenn zur Laufzeit Unterklasse vorhanden ist. **Compilefehler**, da Compiler Exceptions prüft.
|
||||||
|
|
||||||
### Überladen vs. Überschreiben (S. 112, S. 116)
|
### Überladen vs. Überschreiben (S. 112, S. 116, S. 130)
|
||||||
Aufpassen, Methoden können auch solche aus Oberklassen überladen. Dadurch ggf. Fehler oder nicht. Methodenauswahl Überladen Compilezeit, Überschreiben Laufzeit.
|
- Aufpassen, Methoden können auch solche aus Oberklassen überladen.
|
||||||
|
- Dadurch ggf. Fehler oder nicht.
|
||||||
|
- Überladen: Rückgabe kann sich ändern. Überschreiben: Nur covariant (Subklassen)
|
||||||
|
- Methodenauswahl Überladen Compilezeit, Überschreiben Laufzeit.
|
||||||
|
|
||||||
### main() kan überladen werden (S. 115)
|
### main() kan überladen werden (S. 115)
|
||||||
Aber nur die public static void main (String [] args) kann von der JVM als Startmethode verwendet werden.
|
Aber nur die public static void main (String [] args) kann von der JVM als Startmethode verwendet werden.
|
||||||
@@ -37,4 +40,21 @@ Aber nur die public static void main (String [] args) kann von der JVM als Start
|
|||||||
- Klassen implementieren Interfaces (auch mehrere)
|
- Klassen implementieren Interfaces (auch mehrere)
|
||||||
- Klassen extenden Klassen (nicht mehrere)
|
- Klassen extenden Klassen (nicht mehrere)
|
||||||
- Interfaces extenden Interfaces (auch mehrere)
|
- Interfaces extenden Interfaces (auch mehrere)
|
||||||
- Klassen: erst extends, dann implements
|
- Klassen: erst extends, dann implements
|
||||||
|
|
||||||
|
### Kovariante Rückgabe (S. 132)
|
||||||
|
Methoden können Unterklassen des definierten Rückgabewertes liefern.
|
||||||
|
|
||||||
|
### Initialisierungsblöcke (S. 147)
|
||||||
|
Initialisierungsblöcke können an beliebiger Stelle (auf Root-Ebene) einer Klasse stehen, nicht nur zu Beginn.
|
||||||
|
|
||||||
|
### Zugriff auf nichtstatische Objekte aus statischem Kontext (S. 150)
|
||||||
|
Aufpassen auf **versteckte** Zugriffe auf Felder/Methoden aus statischem Kontext heraus.
|
||||||
|
|
||||||
|
### Variablen-Deklaration und -Zuweisung (S. 185)
|
||||||
|
Erlaubt:
|
||||||
|
|
||||||
|
- int a, b, c
|
||||||
|
- int j, k=1, l, m=3
|
||||||
|
- int i; int j;
|
||||||
|
- int j, k=1, m=k+3; // Reihenfolge wichtig!
|
||||||
Reference in New Issue
Block a user