この設定を想像してください:
public interface IMass{
    double Mass {get;}
}
public static class IMassExtension {
    public static double ToKg(this IMass massObject) {
        return massObject.Mass / 1000.0;
    }
    public static double CalculateInteractiveGravity(this IMass massObject, IMass otherMassObject)          
    {
         return blah;
    }
}拡張クラスをインターフェースと同じファイル(つまり、IMass.cs)に配置してもよいですか、それとも別のファイル(IMassExtension.cs)に配置する必要がありますか?
ここでは基本クラスは使用できません。想像してみて
public class Person : Animal, IMass {}そして
public class House : Building, IMass {}