Diddl: Beim ersten Vorschlag kommt zum Zug, dass in Enums die Werte echte Objekte sind, und nicht einfach nur Zahlen wie in C. Man kann denen also Felder und Methoden verpassen. Dass man sie trotzdem mit ``==`` und ``!=`` vergleichen kann, liegt daran, dass es "Singletons" sind, also in dem `Enum`-Konstrukt genau ein Exemplar von jedem Typ angelegt wird und damit in der Implementierung zum Beispiel effizient die Speicheradressen verglichen werden können.
Die Frage nach den ``friend``\s verstehe ich nicht? Bezog sich das auf den zweiten, alternativen Vorschlag? Virtuell sind in Java *alle* Methoden.
Wie sieht das eigentlich mit dem BusType aus -- gibt es Laufwerke, die mehr als einen Typ unterstützen? Wenn nicht, wäre das IMHO auch besser bei den konkreten Typen für die Laufwerke aufgehoben als in einem Enum.