@@ -69,7 +69,7 @@ Trowable (Checked)
|
|||||||
-`ausdruck` muss Typ `enum`, `byte`, `short`, `int`, `char` oder `String` ergeben
|
-`ausdruck` muss Typ `enum`, `byte`, `short`, `int`, `char` oder `String` ergeben
|
||||||
- Vom Compiler berechenbare Audrücke in case-Anweisungen sind erlaubt (compile time constant). ``final int i = 1;`` geht, ``final int i; i = 1`` geht nicht.
|
- Vom Compiler berechenbare Audrücke in case-Anweisungen sind erlaubt (compile time constant). ``final int i = 1;`` geht, ``final int i; i = 1`` geht nicht.
|
||||||
- **Erlaubte Identifier-Namen**:
|
- **Erlaubte Identifier-Namen**:
|
||||||
- Müssen mit `_`, `$` oder Buchstabe beginnen
|
- Müssen mit `_`, `$` (Währungssymbol) oder Buchstabe beginnen
|
||||||
- Danach auch Zahlen erlaubt
|
- Danach auch Zahlen erlaubt
|
||||||
- Kein reserviertes Schlüsselwort
|
- Kein reserviertes Schlüsselwort
|
||||||
- Beliebig lang
|
- Beliebig lang
|
||||||
@@ -258,7 +258,10 @@ Trowable (Checked)
|
|||||||
- **Methodensichtbarkeit**: ``private final`` erlaubt (aber sinnlos)
|
- **Methodensichtbarkeit**: ``private final`` erlaubt (aber sinnlos)
|
||||||
- **static-Sichtbarkeit**:
|
- **static-Sichtbarkeit**:
|
||||||
- Statische Methoden nicht vererbt, aber in Subklasse sichtbar
|
- Statische Methoden nicht vererbt, aber in Subklasse sichtbar
|
||||||
- Es darf keine sonst gleiche, nichtstatische definiert werden
|
- Es darf keine sonst gleiche, nichtstatische definiert werden (Regeln wie Überladen, Typ in Hierarchie genügt, Rückgabe nicht)
|
||||||
- Eine identische statische Methode darf definiert werden (ist aber nicht überschrieben, da statisch). *Auswahl daher per Compilezeit-Typ, nicht polymorph*)
|
- Eine identische statische Methode darf definiert werden (ist aber nicht überschrieben, da statisch). *Auswahl daher per Compilezeit-Typ, nicht polymorph*)
|
||||||
- **Polymorphie und Überladen**
|
- **Polymorphie und Überladen**
|
||||||
- Signatur zur Compilezeit, also der definierte Typ. Es wird aber die Methode des tatsächlichen Objekts ausgeführt, sollte diese *zusätzlich* überladen sein. Wenn Methode nicht in der deklarierten Klasse vorhanden ist -> Compilerfehler.
|
- Signatur zur Compilezeit, also der definierte Typ. Es wird aber die Methode des tatsächlichen Objekts ausgeführt, sollte diese *zusätzlich* überladen sein. Wenn Methode nicht in der deklarierten Klasse vorhanden ist -> Compilerfehler.
|
||||||
|
- **Überschreiben vs. Überladen**:
|
||||||
|
- Überladen: Argumentliste muss sich ändern (exakter Typ zählt), damit Methode unterschiedlich ist. Rest egal, zählt aber nicht zur Unterscheidung.
|
||||||
|
- Überschreiben: Argumentliste darf sich nicht ändern (exakter Typ zählt). Exceptions können wegfallen, keine neuen oder Superklassen der vorhandenen. Sichtbarkeit nicht restriktiver, großzügiger geht. Rückgabe höchstens Subklasse.
|
||||||
Reference in New Issue
Block a user