Dadurch sollen Mehrdeutigkeiten verhindert werden.
Manchmal ist aber eine Erweiterung der Funktionalität erwünscht. Beispielsweise kann es sinnvoll sein, das Geometrie-Paket um Grafikfähigkeiten zu erweitern. Dazu geeignet sind interface-Klassen:
Interfaces sind rein-abstrakte Klassen. Sie dürfen außer Konstanten (static final ) und abstrakten Methoden nichts enthalten.
Statt des Keywords class wird das Keyword interface verwendet.
package Grafik; import java.awt.*; public interface GrafikObjekte { public void zeichnen(Graphics g); }
Statt des Keywords extends wird das Keyword implements bei abgeleiteten Klassen verwendet. package Grafik; import java.awt.*; import Geometrie.*;
public class GrafikKreis extends Kreis implements GrafikObjekte { public GrafikKreis() { super(); } public GrafikKreis(double x, double y, double r) { super(x,y,r); } public void zeichnen(Graphics g) { g.drawOval((int)(mitte.x-radius),(int)(mitte.y-radius), 2* (int)radius, 2*(int)radius); } }