Java Interface Interview Questions with Answers

32. What will be the output of the following programs?

a)

interface A {	
  void m1(int x, double y);	
}
abstract class B implements A {
  public void m1(double x, int y){
     System.out.println("One");	 
  }
}
public class Test extends B {
  public void m1(double x, int y){
     System.out.println("Two");
     super.m1(20.5, 20);
  }
  public void m1(int x, double y){
     System.out.println("Three");
  }
public static void main(String[] args){
   Test t = new Test();
   t.m1(20.5, 10);
   t.m1(10, 5.5);
 }
}

Ans: Output: Two, One, Three

b)

interface A {	
   void m1(A a);	
}
abstract class B implements A {
   void m1(B b){
   System.out.println("One");	 
 }
}
public class Test extends B {
  public void m1(A a){
     System.out.println("Two");
  }
  public void m1(B b){
     System.out.println("Three");
  }
public static void main(String[] args){
   A a = new Test();
   a.m1(new Test());
 }
}

Ans: Output: Two

c)

interface A {	
   void m1(A a);	
}
abstract class B implements A {
   void m1(B b){
     System.out.println("One");	 
   }
}
public class Test extends B {
   void m1(A a){
      System.out.println("Two");
   }
   void m1(B b){
      System.out.println("Three");
   }
public static void main(String[] args){
   A a = new Test();
   a.m1(null);
 }
}

Ans: No, IllegalAcceessError exception because we cannot reduce the visibility of inherited method from interface A.

d)

interface A {	
   void m1();	
}
abstract class B implements A {
   public void m1(){
      System.out.println("One");	 
   }
}
public class Test extends B {
   public void m1(){
     System.out.println("Two");
     super.m1();
   }
public static void main(String[] args){
   A a = new Test();
   a.m1();
   B b = new Test();
   b.m1();
 }
}

Ans: Output: Two, One, Two, One

e)

interface A {	
   int m1();	
}
class B implements A {
   public int m1(){
     return 20;	 
   }
}
public class C implements A {
  public int m1(){
     return 30;	 
  }
}
public class Test {
public static void main(String[] args){
  A a = new B();
  int aa =  a.m1();
  System.out.println(aa);
 
  C c = new C();
  int cc = c.m1();
  System.out.println(cc);
 }
}

Ans: Output: 20, 30.

f)

interface A {	
  A m1();	
}
class B implements A {
  public A m1(){
    System.out.println("Red");	
    return null;	 
  }
}
public class C implements A {
  public A m1(){
     System.out.println("Orange");	 
     return null;	 
  }
}
public class Test {
public static void main(String[] args){
   A a = new B();
   a.m1();
   C c = new C();
   c.m1();
 }
}

Ans: Output: Red, Orange.

33. Will the below code compile successfully? If yes, what will be the output of the following program?

interface A {	
  A m1();	
}
class B implements A {
  public B m1(){
    System.out.println("Red");	
    return new B();	 
  }
}
public class C implements A {
  public C m1(){
    System.out.println("Orange");	 
    return new C();	 
  } 
}
public class Test {
public static void main(String[] args){
  A a;
  a = new B();
  a.m1();
  a = new C();
  a.m1();
 }
}

Ans: Yes, the code will be successfully compiled. The result is Red, Orange.

34. What will be the output of the following program?

interface A {	
  int x = 20;	 
  interface B {
    int x = 30;  
  }
}
class C implements A {
  int x = 40;
}
public class D implements A.B {
  int x = 50;
}
public class Test {
public static void main(String[] args){
   System.out.println(A.x);
   System.out.println(A.B.x);
 
   C c = new C();
   System.out.println(c.x);
 
   D d = new D();
   System.out.println(d.x);
 }
}

Ans: Output: 20, 30, 40, 50.

35. Identify the error inside the following code and correct it. What will be the output after the correction of error?

interface A {	
  void m1();	 
  interface B {
    void m1();  
  }
}
class C implements A.B {	
  public void m1(){
    System.out.println("Green");	 
  }
}
public class Test {
public static void main(String[] args){
   A a = new C();
   a.m1();
 }
}

Ans: This code will generate compilation error because class C is implementing inner interface, not outer interface. But the reference of a is a type of outer interface. The correct code is as follows:

A.B ab = new C();

After correction, the output is Green.

36. Is there any error in the following code? If yes, correct it.

interface A {	
  void m1();	 
  interface B {
    void m2();  
  }
}
class C implements A, A.B {	
  public void m1(){
     System.out.println("Green");	 
  }
 }

Ans: Yes, there is an error in the above code because class C must implement inherited abstract method from inner interface A.B.

37. Will the code compile successfully? If yes, what will be the output?

interface A {	
  void m1();	 
  interface B {
    void m2(); 
  }
}
class C implements A, A.B {	
  public void m1(){
     System.out.println("Green");	 
  }
public void m2(){
    System.out.println("Red");	 
  }
 }
public class Test {
public static void main(String[] args){
   C c = new C();
   c.m1();
   c.m2();
 }
}

Ans: Yes, the above code will be compiled successfully. The output is Green, Red.

DEEPAK GUPTA

DEEPAK GUPTA

Deepak Gupta is the Founder of Scientech Easy, a Full Stack Developer, and a passionate coding educator with 8+ years of professional experience in Java, Python, web development, and core computer science subjects. With strong expertise in full-stack development, he provides hands-on training in programming languages and in-demand technologies at the Scientech Easy Institute, Dhanbad.

He regularly publishes in-depth tutorials, practical coding examples, and high-quality learning resources for both beginners and working professionals. Every article is carefully researched, technically reviewed, and regularly updated to ensure accuracy, clarity, and real-world relevance, helping learners build job-ready skills with confidence.