// Ein interface in Java ist im Prinzip eine // ABSTRAKTE Klasse, die nur ABSTRAKTE (ohne Implementierungsrumpf) Funktionen // und allenfalls KONSTANTE Attribute (nicht-variable Variablen) // enthält // Interfaces haben die Besonderheit, dass man MEHRERE davon // per "implements i1,i2,i3,..." (statt extends) "vererben" kann. public class Interfaces { public static void main(String[] args) { Computer c1 = new Computer(); Computer c2 = new Computer(); c1.senden(c2,"Hallo, Welt!"); Smartphone s = new Smartphone(); c1.senden(s, "Hallo, Welt"); } } interface netzwerk { // Konstante! final int GESCHWINDIGKEIT = 1000; // NUR Signatur, KEINE Implementierung // Im interface automatisch "abstract" public void senden(Object empfaenger, Object daten); public void empfangen(Object sender, Object daten); } // Durch implements netzwerk wird erzwungen, dass der // Computer eine Funktion senden(...) und empfangen(...) // besitzen MUSS! class Computer implements netzwerk{ public void senden(Object e, Object d){ // Hier soll aus dem Nachbar-Objekt die Funktion // "empfangen" aufgerufen werden. ((netzwerk)e).empfangen(this, d); } public void empfangen(Object s, Object d){ System.out.println("Ich, " + this.toString() + " habe Daten empfangen von " + s + ": " + (String)d); } } class Smartphone extends Computer{ }