Dynamic Dispatch Method/ Runtime Polymorphism and Abstract Class

Dynamic Dispatch Method or Runtime polymorphism

Running overloaded functions in different classes from main class

Super keyword can only be used to call the methods from within the classes and not the main method

ref object of base class runs overloaded function of base class and ref object of derived class runs overloaded function of the derived class

We always make reference for base class

 

Abstract Classes

 

An abstract class is a class that is declared by using the abstractkeyword. It may or may not have abstract methods. Abstract classes cannot be instantiated, but they can be extended into sub-classes.

Java provides a special type of class called an abstract class. Which helps us to organize our classes based on common methods. An abstract class lets you put the common method names in one abstract class without having to write the actual implementation code.

An abstract class can be extended into sub-classes, these sub-classes usually provide implementations for all of the abstract methods.

The key idea with an abstract class is useful when there is common functionality that’s  like to implement in a superclass and some behavior is unique to specific classes. So you implement the superclass as an abstract class and define methods that have common subclasses. Then you implement each subclass by extending the abstract class and add the methods unique to the class.
Points of abstract class :

  1. Abstract class contains abstract methods.
  2. Program can’t instantiate an abstract class.
  3. Abstract classes contain mixture of non-abstract and abstract methods.
  4. If any class contains abstract methods then it must implements all the abstract methods of the abstract class.

 

 

Constructive and genuine appreciation and/or criticism most welcome