Eine Klassenmethode zeichnet sich dadurch aus, daß man keine Instanz der Klasse braucht um sie aufzurufen. Der vorangestellte Klassenname genügt. Weiterhin enthält der implizit übergebene Self-Parameter nicht die Instanz, wie bei normalen Methoden, sondern die Klasse.
Würde man nun Klassenmethoden in Interfaces zulassen, bieten sich zwei Anwendungs-Szenarien an:
- Ein Aufruf wie IMyInterface.MyClassMethod
- Die Implementierung einer Interface-Methode durch eine Klassenmethode
Punkt 1 scheidet offensichtlich mangels Zugriff auf eine implementierenden Klasse aus.
Punkt 2 scheitert an dem unterschiedlichen Self-Parameter. Einen Workaround dafür hatte Sebastian ja bereits beschrieben.