JAVA-Object-Oriented Programming
OOP’s:
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:
Class is a collection of similar types of data of properties and behaviors.
Object:
An Object is an identifiable entity with some characteristics and behavior.
Inheritance:
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:
Single 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.
Multilevel 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
Hierarchical Inheritance:
A child class inheritance from more than one class.
In the above diagrams: Class A inherited by class B, class C, class D.
Multiple Inheritance:
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.
Hybrid Inheritance:
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:
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:
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:
Encapsulation wrapping up of the data (variables) and code acting on the data (methods) together as a single unit.