Abstrakte Klassen dienen halt nur dazu zu verhindern, dass eine Klasse
jemals instantiiert wird, also das man new Kopfbedeckung(...) sagen darf. Was sollte ein Objekt "Kopfbedeckung" schon sein?
Im Buch "Java von Kopf bis Fuß steht zu: Wie sieht ein neues abstract Tier() Objekt aus? :
Der Versuch, ein Objekt des Typs Tier zu erzeugen, ist wie ein alptraumartiger Star Trek-Transporter Unfall. Der, bei dem irgendwo während des Beamens plötzlich etwas Seltsames mit dem Zwischenspeicher geschieht.
Um also zu verhindern, dass du nach dem Erstellen einer Kopfbedeckung gefressen wirst (du hast ja gar keine Vorstellung wie sowas aussehen könnte!), machst du die Klasse lieber abstrakt