OOPs concepts in java
OOPs principles are as follows:
- 1. Abstraction.
- 2. Encapsulation.
- 3. Polymorphism.
- 4. Inheritance.
Abstraction is a way of hiding complexity. Let us take the example of a car. We know that if accelerator pressed, speed will increase but don’t know the internal process how speed will be increased.
Encapsulation is a process of wrapping code and data into a single unit. Let us take an example of a HR in a company. We communicate through HR not directly with the departments. HR is acting as a public interface here.
Polymorphism means more than one forms. In java polymorphism is a way in which something behaves differently based on its call. Water can be of in any form solid, liquid or gas.
Inheritance is the way of re-usability of code. Let us take the example of parent and child. A child inherits the properties of its parent.
Abstraction in java
Abstraction in real world:
Abstract is a way of hiding complexity. Let us take the example of a car. We know that if accelerator pressed, speed will increase but don’t know the internal process how speed will be increased.
Abstraction in programming:
Abstract way to show essential details (what) to the user and hide non-essential details (how). Let us take a simple example:
num = num1*num2;
In the above example we multiply two numbers and store result into new variable. But what is happening behind the sense? There are so many things like registers, program counter (PC) etc are involved. Numbers of operations like PUSH, POP etc are happening. But these operations are hiding by high level languages we are using for programming.
Abstraction in java is achieved with the help of abstract class and interface. We will discuss later about abstract class and interface.
Advantages/Benefits of Abstraction:
1. Only show essential details to end user.
2. Hide complexity.
Difference between abstraction and encapsulation:
|1. Encapsulation is a concept for wrapping of data and code into a single unit.
2. Encapsulation is a way of data hiding.
3. Encapsulation is achieved by access modifiers and classes.
|1. Abstraction is a way to show only essential details to user.
2. Abstraction is way of hiding complexity.
3. Abstraction is achieved by abstract class and interface.