Als statische Methode(n) in die Basisklasse, ja. Damit kommt man dem multiple dispatch schön näher. ;)
Die kann ja auch nicht-statisch sein.
Nein, denn wie willst du eine abstrakte Karte instanziieren? Denn das musst du, wenn die Methode nicht statisch ist - es sei denn du willst sie auf den erbenden Karten aufrufen. Dann musst du aber ggf. eine konkrete Karte instanziieren, obwohl du die gar nicht brauchst. Klingt wenig sinnvoll oder?
Dieses Beispiel ist als Lehrbeispiel schon nicht mehr ganz so simpel, von wegen es gibt eine neue Klasse die dann einfach mit ins bisherige System eingehängt wird ohne dass dieses von der neuen Klasse wissen muss. Hier gibts nämlich Abhängigkeiten untereinander.
Naja, die anderen Klassen müssen nichts von dieser Klasse wissen. Auch nicht die Elternklasse. Nur die Methoden zum Vergleich (die eigentlich auch nicht in der Elternklasse stecken sollen - sie meinen Multiple Dispatch link) müssen erweitert werden.