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());