DEV Community

Ajay
Ajay

Posted on

Java learning series | Day-6 Inheritance , Polymorphism

What is inheritance?

  • It is a core mechanism in object-oriented programming ,
  • A object of one class() is acting as an object of another class.
  • A class is drived from the another class is called subclass(drived class / extended class / chlid class),The class from which subclass is drived is called as superclass(base class or parent class).

  • Superclass (Parent Class): The class whose properties and methods are inherited by another class.

  • Subclass (Child Class): The class that inherits properties and methods from another class.

  • extends: The Java keyword used to establish an inheritance relationship.

  • super: A keyword used inside a subclass to invoke the parent class's constructors, methods, or variables.

Java Support three types of inheritances

  1. Single Inheritance
  2. Multilevel Inheritance
  3. Heirarchical Inheritance

1) Single inheritance

  • A subclass is derived only-one superclass,It inherits the properties and and behaviour of the superclass.


public class Vehicle{   #superClass
}

public class Bus extends Vehicle{     #subClass
}
Enter fullscreen mode Exit fullscreen mode

2) Multilevel Inheritance

  • The derived class will be inheriting a base class and as well as derived class also acts as the base class for another class


public class GrandFather{
}

public class Father extends GrandFather{
}

public class Child extends Father{
}
Enter fullscreen mode Exit fullscreen mode

3) Heirarchical Inheritance

  • More than one subClass is created from one superClass is called as Heirarchical inheritance.


public class Father {
}

public class Son extends Father{
}

public class Daughter extends Father{
}
Enter fullscreen mode Exit fullscreen mode

what is polymorphism?

Polymorphism is the fundamental concept of the object-oriented programming that allows a single entity to take multipe form(methods).It enables same method which behaves differently depending on object involved.
Polymorphism improves code flexibility, reusability, and maintainability.

  • Polymorphism means "many forms".
  • It allows the same method to exhibit different behaviors.
  • It is achieved through method overloading and method overriding.

Types of Polymorphism

  1. Complie-time polymorphism ---> method overloading.
  2. Run-time polymorphism ---> Method overriding.

1) Complie-time polymorphism

It is the static polymorphsim, occurs when the method is executed id determined during the compilation. Achieved by method overloading.

  • method selection is occured at complie time.
  • Improve readability and flexibility.

Method overloading

Same method name with different type of arguments and no of arguments differs.

public class Calculator{

public static void main(String[] args){
Calculator myCal = new Calculator();
myCal.add(10,20);
myCal.add(10,30,40);
myCal.add(10);
myCal.add();

}
public int add(int no1 , int no2){
 System.out,println(no1 + no2);
} 

public int add(int no1 , int no2 , int no3){
 System.out,println(no1 + no2 + no3);
}

public int add(int no1){
 System.out,println(no1);
}

public int add(){
 System.out,println(no arguments);
}
Enter fullscreen mode Exit fullscreen mode

2) Run-time polymorphism

It is also known as dynamic polymorphism , occurs the method calling is done during the program execution.It achieved in method overriding.

  • Method selection occurs at runtime.
  • Depends on the actual object type.

Method overriding

It occurs only in the inheritance , where the subclass provide its own implementation method or properties already defined in the superclass.
Note : Every subClass or superClass has an default parent class(base class/superclass) as object

Key charaterics:

  • Same method name
  • same no of arguments
  • same return type
  • same access modifider
# class parent
public  class Parent {

public void display(){
}

}

#class Child
public class Child extends Parent{

public static void main(String[] args){

Child newChild = new Child();
newChild.display()
}

#1st preference for that class then serach in extends class
public  void display(){                
}

}
Enter fullscreen mode Exit fullscreen mode

Top comments (0)