Q:

Calling same method name from two different interface - Java

Java doesn't allow the multiple inheritance to protect diamond problem. It uses interface to take care of this problem.

Then the case of using interface, let's say
interface A{
run();
}

interface B{
run();
}

class C implements A, B{
run() {}   //Which interface we are using?
}

When we call the method run() in the class C, how can we determine which interface we are using?

A:

You don´t. And it does not matter, since the implementation is not on the interface but on the class. So the implementation is unique. No ambiguity.
What does matter is if each declaration wants to have a different return type:
interface A{
    void run();
}

interface B{
    String run();
}

class C implements A, B{
    ???? run() {}
}

This is the only way you can have problems with multiple interfaces in Java.

A:

It does not matter. The purpose of the interface is to indicate that the class C has a method run(). You can depend on that method being there. 
Even though both A and B specify the run method it is only implemented once so there is no conflict.
When you say you are using an interface it really means how your objects are declared:
   A myobject = new C();
   myobject.run();

vs
   B myObject = new C();
   myobject.run();

In the first case you are "using" the A interface, that is, your code is assuming that the myobject Object is of type A and that it has a method called run(). In the second case you are "using" the interface B.

