2019-11-04 21:53:38 +00:00
parent 3ec46791b2
commit d5440731f5

@@ -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!