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 :
- Abstract class contains abstract methods.
- Program can’t instantiate an abstract class.
- Abstract classes contain mixture of non-abstract and abstract methods.
- If any class contains abstract methods then it must implements all the abstract methods of the abstract class.