Java is an object-oriented programming language. Where bind the data and function together. Object-oriented programming aims to implement real-world entities like inheritance, hiding, polymorphism, etc in programming.
Class is a collection of similar types of data of properties and behaviors.
An Object is an identifiable entity with some characteristics and behavior.
A class to derive properties and characteristics from another class is called Inheritance.
- Sub Class: The class that inherits properties from another class is called Sub Class or Derived Class.
- Super Class: The class whose properties are inherited by sub-class is called Base Class or Super Class.
Types of Inheritance:
A single child class that inherits properties from one parent class.
In the above diagrams: Class A is a base class that is derived from class B. It is also known as single-level inheritance.
Child or Derived class inherits properties of the superclass and this child class acts as a superclass for another derived class.
In the above diagrams: Class A is a base class that is derived from class B and this class B act as a superclass also inherited by class C
A child class inheritance from more than one class.
In the above diagrams: Class A inherited by class B, class C, class D.
More than one class is inherited by a single class.
In the above diagrams: Class A and Class B are inherited by a class B.
This inheritance is implemented by combining more than one type of inheritance. like: Hierarchical Inheritance and Multiple Inheritance.
In the above diagrams: Class A is the base inherited by subclasses B and C. And, class D inherits both the classes B and C.
Polymorphism means many forms. Same function name (but different signatures) being uses for different types or with different functionality.
Compile-time polymorphism: It is also known as static polymorphism. This type of polymorphism is achieved by function overloading or operator overloading. But Java doesn’t support Operator Overloading.
Method overloading: Multiple functions with the same name but different parameters in a class. These functions are the different numbers of arguments or and diffrent in type of arguments.
Runtime polymorphism: It is also known as dynamic polymorphism. This type of polymorphism is achieved by the overridden method is resolved at Runtime.
Method overriding: Function with the same name defined in the parent class and child class in inheritance. That base function is said to be overridden.
Abstraction is the property by which only the essential details are displayed to the user.
Ex: A car is viewed as a car rather than its individual components.
Encapsulation wrapping up of the data (variables) and code acting on the data (methods) together as a single unit.