Nein.
Diese Zeile:
System.out.println( inventar[1] );
führt die toString()
Methode eines Lebensmittel
-Objekts aus. Aber diese Zeile:
System.out.println( inventar[2] );
führt die toString()
Methode eines Buecher
-Objekts aus.
public static void main ( String[] args ) { Besteuerbar artikel1 = new Buecher ( "Emma", 24.95, "Austin" ); Besteuerbar artikel2 = new Spielwaren ( "Lego", 54.45, 8 ); System.out.println( "Steuer fuer Artikel 1: " + artikel1.berechneSteuer() ); System.out.println( "Steuer fuer Artikel 2: " + artikel2.berechneSteuer() ); }
Eine Schnittstelle kann als Datentyp für eine Referenzvariable verwendet werden.
Da Spielwaren
und Buecher
die Schnittstelle Besteuerbar
implementieren,
können beide mit einer Referenzvariable vom Typ Besteuerbar
verwendet werden:
Die Schnittstelle Besteuerbar
teilt dem Compiler mit, dass alle Besteuerbar
-Objekte eine berechneSteuer()
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() );