Ja. Durch die Verwendung einer Schnittstelle kann eine Konstante von mehreren Klassen verwendet werden. Das hilft die Klassen konsistent zu halten.
Hier ist eine Abbildung, die die Klassen und ihre Objekte zeigt: In der Abbildung werden Klassen durch Wolken repräsentiert. Pfeile verbinden Subklassen mit Superklassen. Das gepunktete Rechteck repräsentiert die Schnittstelle; gepunktete Pfeile zeigen welche Klassen sie implementieren. Rechtecke repräsentieren Objekte.
Die calculateTax()
Methode wird nur für Objekte verwendet, deren Klassen die Schnittstelle implementieren.
Hier ist ein kleines Programm, das die Klassen testet.
public class StoreTester { public static void main(String[] args) { Goods gd = new Goods("bubble bath", 1.40); Food fd = new Food ("bread", 4.45, 1500); Book bk = new Book ("Emma", 24.95, "Austin"); Toy ty = new Toy ("Legos", 54.45, 8); System.out.println(gd); System.out.println(fd); System.out.println(ty); System.out.println( "Steuer: " + ty.calculateTax() + "\n"); System.out.println(bk); System.out.println( "Steuer: " + bk.calculateTax() + "\n" ); } }