Interface naming conflicts

Interface naming conflicts

In this tutorial, we are going to discuss interface naming conflicts in java.

Interface naming conflicts
1. Method naming conflicts

Case 1

If two interfaces contain a method with the same signature and the same return type in the implementation class, we can implement only one method.

interface Left {
   public void m1();
}

interface Right {
   public void m1();
}

class Test implements Left, Right {
   public void m1() {
      // Implementation
   }
}

Case 2

Suppose two interfaces contain a method with the same signature but different arguments. In that case, we can provide an implementation for both methods, and these methods are considered overloaded methods.

E.g

interface Left {
   public void m1();
}

interface Right {
   public void m1(int i);
}

class Test implements Left, Right {
   public void m1() {
       // Implementation
   }

   public void m1(int i) {
       // Implementation
   }
}

Case 3

Suppose two interfaces contain a method with the same signature but different return types. Then it is impossible to implement both interfaces at a time.

interface Left {
   public void m1();
}

interface Right {
   public int m1();
}

We cannot write any java class which implements both interfaces simultaneously.

2. Variable naming conflicts
interface Left {
   int x = 888;
}

interface Right {
   int x = 999;
}

class Test implements Left, Right {
   public static void main(String args[]) {
      System.out.println(x);
   }
}
C.E: Reference to x is ambiguous

There may be a chance of 2 interfaces containing variable with the same name and may raise variable naming conflicts, but we can resolve these naming conflicts using interface names.

System.out.println(Left.x);
System.out.println(Right.x);
Interface naming conflicts
Scroll to top