DVG Interfaces
DVG mehrfache Vererbung 4 Mehrfache Vererbung ist die Ableitung einer Klassen von mehreren anderen Klassen. –farbigerPunkt sollte eine Ableitung sowohl der Klasse Punkt als auch der Klasse color sein. class farbigerPunkt extends Punkt,color 4 Problem: –Elternklassen könnten die gleichen Methoden (Name, Parameterliste) definieren und diese verschieden implementieren. Welche Methode sollte dann verwendet werden? ==> mehrfache Vererbung ist in JAVA nicht erlaubt 4 Interface –abstrakte Klasse ausschließlich abstrakte Methoden statische Konstanten
DVG Interfacedefinition 4 Interfacedefinition besteht aus –Interfacekopf Name des Interfaces Modifizierer (public) Ableitung von anderen Interfaces (extends) –Interfacerumpf statische Attribute alle Attribute bekommen automatisch die Modifizierer: final public static abstrakte Methoden alle Methoden bekommen automatisch die Modifizierer abstract public
DVG Interfacekopf [public] interface Bezeichner [extends Interface,...,Interface] implizit wird abstract angewendet 4 Interface können von mehreren anderen Interfacen erben. Kein Problem, da keine Implementierungen enthalten sind, sondern nur Schnittstellen.
DVG Attribute Typ [ []...[] ] name = Initialisierer ; Implizit werden public static final angewendet ==> Attribute sind echte Konstanten 4 Attribute müssen immer initialisiert werden.
DVG Methoden Typ Name ( [formaleParameterliste] ) [ []...[] ] [throws Ausnahme,...,Ausnahme] ; Methoden sind immer public abstract ==> keine Implementation
DVG Beispiel interface Vergleichbar { boolean gleich(Object o); int vergleiche(Object o); }
DVG public class Punkt implements Vergleichbar { int x, y; public boolean gleich(Object o) { Punkt p = (Punkt)o; if ( (x != p.x) || (y != p.y) ) return false; return true; } public int vergleiche(Object o) { Punkt p = (Punkt)o; return (x*x+y*y)-(p.x*p.x+p.y*p.y); }... }