Die konkrete Klasse die durück bekommst ist sicher nicht abstract.
Nur kann toolkit entscheiden, welche Implementierung es liefert.
Das ist ja gerade das coole an dem prinzip gegen die Schnittstelle zu programmieren.
zb.. ich benutz irgend was, das mir eine List gibt. Ob das jetzt eine ArrayList oder LinkedList ist mir egal, das wird vom dem Objekt das die Liste erzeugt entschieden... sehr flexibel...