I would answer only the first question: why is there no common base interface for all interfaces?
, , System.Object. .
, . , . , , . , , , , . , , , - ? , , ?
, System.object .Net. , COMMON- .Net , , ex:.ToString()
, , , / .
. IFlyable, Fly() , IFlyable. , Flyable , . .
public void FlyTheObject(IFlyable flyingObject)
{
flyginObject.Fly();
}
, Fly().
, Object, . , . , , , .Net- System.Object, , , .