C#以前に.netのinterfaceをclassに付けるという設計思想が古い。
最新を気取るならinterfaceとclassは独立させるべきだったろ。

InterfaceAlpha a = new ClassBeta();

この式で言うとClassBetaはInterfaceAlphaの事を知らない。
だが、ClassBetaはInterfaceAlphaの要件を満たしているので代入可能。
これにより、複数のライブラリを併用した場合同じシグネチャにも関わらず
interfaceが違うがために代入できないとか下らない事を減らせた。