@@ -174,4 +174,14 @@ Trowable
|
||||
- Nur wenn der Compiler sicher ist, dass eine Variable initialisiert wurde, gibt es keinen Compilerfehler
|
||||
- Compiler prüft aber keine Bedingungen (``if (true)`` genügt, ``if (b = true)`` nicht)
|
||||
- Bei Zuweisungen zu ``final`` ähnlich: Compiler ahndet Mehrfachzuweisung, wenn er Bedingung nicht eindeutig auflösen kann. ``if (true) s3= "Hallo"; if (false) s3 = "Welt";`` geht, ``if (b) s3= "Hallo"; if (!b) s3 = "Welt";`` geht nicht. ``final boolean c = false; if (c) s6 = "Hallo"; if (!c) s6 = "Welt";`` geht, da c final ist.
|
||||
-
|
||||
- Ähnlich bei try-catch: Wenn der Compiler sicher ist, dann erlaubt (Compile-Zeit-Konstanten, auf jeden Fall geworfene Exeptions, finally-Blöcke etc.)
|
||||
- **Erlaubte und implizite Modifier**
|
||||
- Interfaces
|
||||
|
||||
|
||||
- **Implementierung 2 Interfaces**
|
||||
- Interessant, wenn beide Interfaces dieselbe Methode deklarieren
|
||||
- Eine static, andere abstract => Geht nicht
|
||||
- Beide static => Zugriff direkt über Interfacename.methode(), *nicht* über super oder this. Wird ja nicht vererbt. Ist nicht Teil der Klasse, kann von außen auch nicht in der Klasse angesprochen werden, nur über das Interface. Kann aber in der Methode mit selbem Namen deklariert werden.
|
||||
- Beide abstract => Muss implementiert werden. Zugriff *nur* über this.
|
||||
- Beide default => Muss implementiert werden, um Eindeutigkeit zu schaffen! Zugriff per Interfacename.super.methode() möglich!
|
||||
Reference in New Issue
Block a user