Dynamic method dispatch in java

Dynamic method dispatch is a mechanism to resolve overridden method call at run time instead of compile time. It is based on the concept of up-casting (A super class reference variable can refer subclass object.).

Example 1:

/**
 * This program is used for simple method overriding example.
 * with dynamic method dispatch.
 * @author W3spoint
 */
class Student {
      /**
       * This method is used to show details of a student.
       * @author W3spoint
       */
      public void show(){
            System.out.println("Student details.");
      }
}
 
public class CollegeStudent extends Student {
      /**
       * This method is used to show details of a college student.
       * @author W3spoint
       */
      public void show(){
            System.out.println("College Student details.");
      }
 
      //main method
      public static void main(String args[]){
       //Super class can contain subclass object.   
       Student obj = new CollegeStudent();
 
       //method call resolved at runtime
       obj.show();
      }
}

Output:

College Student details.
School Student details.

Download this example.

Note: Only super class methods can be overridden in subclass, data members of super class cannot be overridden.

/**
 * This program is used for simple method overriding example.
 * with dynamic method dispatch.
 * @author W3spoint
 */
class Student {
      int maxRollNo = 200;
}
 
class SchoolStudent extends Student{
      int maxRollNo = 120;
}
 
class CollegeStudent extends SchoolStudent{
      int maxRollNo = 100;
}
 
public class StudentTest {
      public static void main(String args[]){
       //Super class can contain subclass object.   
       Student obj1 = new CollegeStudent();
       Student obj2 = new SchoolStudent();
 
       //In both calls maxRollNo of super class will be printed.
       System.out.println(obj1.maxRollNo);
       System.out.println(obj2.maxRollNo);
      }
}

Output:

200
200

Download this example.
 
Next Topic: Association in java with example.
Previous Topic: Method overriding in java with example.

 

Content Protection by DMCA.com
Please Share