Polymorphism   overriding and exception  handling
Below  are two rules to note when
overriding methods related to exception
handling
Rule 1:-   if the superclass override method does not throw an exception. Subclasses override method
can only throw is” unchecked exception” throwing a checked exception will lead
to compile time.
Rule 2:- if the superclass override method does throw an exception .subclass override method can only throw .sum subclass exception throwing parent exception. exception hierarchy with lead to compile-time error also there is no issue is subclass overridden is not throwing any exception.
Rule 1 example:
class Test   {
void show()   {
System.out.println(“one”);
}
}
class  Test1 
extends   Test   {
void show() throws
ArithmeticException   {
System.out.println(“two”);
}
public static void
main(String   args[])   {
Test  t = 
new Test();
t.show();
Test1  t1 = 
new Test1();
t1.show();
Rule 2 example:
class Test   {
void show()  throws RuntimeException   {
System.out.println(“one”);
}
}
class  Test1 
extends   Test   {
void show() throws
RuntimeException   {
System.out.println(“two”);
}
public static void
main(String   args[])   {
Test  t = 
new Test();
t.show();
Test1  t1 = 
new Test1();
t1.show();
case 3:-
overloading and abstract method :-   abstract method in an interface or abstract
class are meant to be overridden in derived 
concrete class other wise compile time error will be thrown.
Example:-
abstract  class Test  
{
abstract   void display();  
}
void show()  throws RuntimeException   {
System.out.println(“one”);
}
}
class  Test1 
extends   Test   {
  void display();  }
void show()   {
System.out.println(“two”);
}
}
public static void
main(String   args[])   {
Test1  t1 = 
new Test1();
t1.show();
}
}
Example of interface:--
Interface Test_Program   {
Void  display ();   
}
Abstract class    Test  
{
Abstract void display
();   
void show()  throws RuntimeException   {
System.out.println(“one”);
}
}
class  Test1 
implements    Test_Program   {
  void display();    {
System.out.println(“two”);
}
void show()   {
System.out.println(“three”);
}
public static void
main(String   args[])   {
Test1  t1 = 
new Test1();
t1.show();
t1.display();
}
}

 
 
0 Comments