Any appearance of extension methods implementing multiple inheritance is wholly an illusion. They do not.
Extension methods are faily simple compiler tricks. They compile to plain old static methods that look and work just as they would with the this
removed from the first parameter.
Consider:
myObj.Extension();
...
public static class MyExtension
{
public static void Extension(this MyObj myobj)
Calling the extension is equivalent to this:
MyExtension.Extension(myObj);
You can even call it like that in your code, of course.