Nein.
Diese Zeile:
System.out.println( inventar[1] );
führt die toString()
Methode eines Food
-Objekts aus. Aber diese Zeile:
System.out.println( inventar[2] );
führt die toString()
Methode eines Book
-Objekts aus.
public static void main ( String[] args ) { Taxable artikel1 = new Book("Emma", 24.95, "Austin"); Taxable artikel2 = new Toy("Lego", 54.45, 8); System.out.println( "Steuer Artikel 1: " + artikel1.calculateTax() ); System.out.println( "Steuer Artikel 2: " + artikel2.calculateTax() ); }
Eine Schnittstelle kann als Datentyp für eine Referenzvariable verwendet werden.
Da Toy
und Book
die Schnittstelle Taxable
implementieren,
können beide mit einer Referenzvariable vom Typ Taxable
verwendet werden:
Die Schnittstelle Taxable
teilt dem Compiler mit, dass alle Taxable
-Objekte eine calculateTax()
Methode haben werden, so dass diese Methode mit den Variablen verwendet werden kann.
Würde das Folgende funktionieren?
System.out.println(artikel1.toString()); System.out.println(artikel2.toString());