In eine Queue-Instanz können nun Objekte vom aktuellen Typparameter gespeichert und wiedergewonnen werden – sowie von dessen Untertypen. Polymorphie ermöglicht, dass Objekte unterschiedlicher Typen in der Warteschlange gleich behandelt werden, sich nach der Wiedergewinnung ihrem Typ entsprechend unterschiedlich verhalten:
class Ober { … }
class Unter1(zahl: Double) extends Ober { … }
class Unter2(zeichen: Char) extends Ober { … }
class Unter3(ref: Object) extends Ober { … }
…
val polyQ = new ArrayQ[Ober](5) // ListQ ähnlich
polyQ.add(new Unter1(1.2))
polyQ.add(new Unter2('€'))
polyQ.add(new Unter3(new Integer(5)))
polyQ.add(new Unter3("String-Objekt"))
Abbildung 24: Polymorphe Warteschlange
Version: 5. Dezember 2010
© Prof. Solymosi, 2010, Beuth-Hochschule für Technik Berlin