public interface Quadrierbar { public abstract Quadrat zuQuadrat(); boolean istQuadrat(); /* * Hinweise: * - Jede Methode eines Interfaces ist implizit public und abstract*! * Beispiel: int m(); == public abstract int m(); * - Jede Variable eines Interfaces ist automatisch eine Member-Variable * und implizit public, final und static. * Beispiel: int VAR; == public static final int VAR; * * Sichtbarkeiten (Modifier): * - public: von überall zugreifbar * - protected: im selben Package und für alle Unterklassen zugreifbar * - "Standard": im selben Package zugreifbar (a.k.a. "package-private" * oder "Default"*, d. h. kein Modifier) * - private: nur innerhalb der Klasse zugreifbar * * * Achtung: Die Default-Sichtbarkeit (bspw. "int a" als Member-Variable) * hat nichts zu tun mit dem seit Java 8 verfügbaren Schlüssel- * wort "default". Dieses Schlüsselwort kann in Interfaces in * Methoden-Signaturen stehen, um diese (wie in abstrakten * Klassen) mit einer Standard-Implementierung zu versehen. * Die Modifier abstract und default sind damit natürlich nicht * kombiniert möglich. Standardmäßig sind Methoden in Interfaces * jedoch abstrakt. */ }