I see a code where there are two interfaces having some methods with two methods having same name. Then there is a class that implements these interfaces i think it should not have compiled because of ambiguity in method names. Why does it works fine. Class1.Method, Class2.Method, This is how they differ. No ambiguity.