Letzteres geht auch, ohne dass man die zusätzliche Funktion definiert. Ersteres ist der bessere Weg, wenn man sauber Schnittstellen definieren will (ähnlich "interface" in Java), da nur so verhindert wird, dass von dieser Klasse Objekte instantiiert werden können.