Skip to main content

Intersection of exception in class or interface hierarchy

Question?

Q1. Will below program compile?


public class ExceptionTestForInterface implements Type3
{

  public void f()
  {
    System.out.println("Hello World");
  }
  
  public static void main(String[] args)
  {
    Type3 type = new ExceptionTestForInterface();
    type.f();
  }

}


interface Type1 {
  void f() throws CloneNotSupportedException;
}

interface Type2 {
  
  void f() throws InterruptedException;
  
}

interface Type3 extends Type1, Type2{
  

}

Ans => Yes, It will compile and successfully print the "Hello World"


Remember

The set of checked exceptions that a method can throw is the intersection of the sets of checked exceptions that it is declared to throw in all applicable types.



Comments

Popular posts from this blog

Method overloading parameter as float, double and wrapper.

Question?  What is the output of below code ?   Other question  will it be compile ? will there be an error at runtime for ambiguity?     public   class  RedHatQuestion {    public   void  printData( float   f )   {     System. out .println( "inside float" );   }       public   void  printData( double   d )   {     System. out .println( "inside double " );   }       public   void  printData(Double  d )   {     System. out .println( "Inside object double" );   }       public   static   void  main(String[]  args ) {     RedHatQuestion  question  =  new  RedHatQuestion();      question .printData(3.1415);   } } It will compile as there is no syntax error. Also there is no runtime exception as there no runtime binding created.  See we have only compile time binding/overloading not overriding. Answer : inside double. Explanation : in java for floating value we have default data type as