Object-Oriented Programming (OOP) in Java
Object-Oriented Programming is a programming style where data and behavior are organized into reusable objects. Java uses OOP concepts to build scalable, secure, and maintainable applications.
Main OOP Concepts
- Class
- Object
- Encapsulation
- Inheritance
- Polymorphism
- Abstraction
1. Class and Object
A class is a blueprint, while an object is the actual instance created from that blueprint.
Real-world example: A car company creates a car design (class). Actual cars manufactured are objects.
class Car {
String brand = "Tesla";
void start() {
System.out.println("Car Started");
}
}
public class Main {
public static void main(String[] args) {
Car c1 = new Car();
c1.start();
}
}Output
Car StartedUse Cases of Class and Object
- Banking systems
- E-commerce products
- Student management systems
- Vehicle tracking applications
- Hospital management software
2. Encapsulation
Encapsulation means wrapping data and methods together while restricting direct access to sensitive data.
Real-world example: ATM machines hide internal banking operations and expose only safe actions like withdrawal and balance check.
class BankAccount {
private double balance = 5000;
public double getBalance() {
return balance;
}
public void deposit(double amount) {
balance += amount;
}
}
public class Main {
public static void main(String[] args) {
BankAccount acc = new BankAccount();
acc.deposit(2000);
System.out.println(acc.getBalance());
}
}Output
7000.0Benefits of Encapsulation
- Improves security
- Protects sensitive data
- Makes code maintainable
- Allows controlled access
- Reduces accidental modification
3. Inheritance
Inheritance allows one class to reuse properties and behavior from another class.
Real-world example: A smartphone inherits common features from a general electronic device.
class Vehicle {
void move() {
System.out.println("Vehicle Moving");
}
}
class Bike extends Vehicle {
void horn() {
System.out.println("Bike Horn");
}
}
public class Main {
public static void main(String[] args) {
Bike b = new Bike();
b.move();
b.horn();
}
}Output
Vehicle Moving
Bike HornWhere Inheritance is Used
- Spring Boot controllers
- Game development
- GUI frameworks
- Payment systems
- Enterprise applications
4. Polymorphism
Polymorphism means one action can behave differently depending on the object.
Real-world example: The same payment button behaves differently for UPI, card, or net banking.
class Payment {
void pay() {
System.out.println("Generic Payment");
}
}
class UPI extends Payment {
void pay() {
System.out.println("UPI Payment Successful");
}
}
class Card extends Payment {
void pay() {
System.out.println("Card Payment Successful");
}
}
public class Main {
public static void main(String[] args) {
Payment p1 = new UPI();
Payment p2 = new Card();
p1.pay();
p2.pay();
}
}Output
UPI Payment Successful
Card Payment SuccessfulTypes of Polymorphism
- Method Overloading → Compile-time polymorphism
- Method Overriding → Runtime polymorphism
5. Abstraction
Abstraction hides internal complexity and shows only essential functionality.
Real-world example: A car driver uses steering and brakes without knowing engine internals.
abstract class Machine {
abstract void start();
}
class WashingMachine extends Machine {
void start() {
System.out.println("Washing Machine Started");
}
}
public class Main {
public static void main(String[] args) {
Machine m = new WashingMachine();
m.start();
}
}Output
Washing Machine StartedReal-World Use Cases of Abstraction
- ATM systems
- Mobile applications
- REST APIs
- Cloud services
- Operating systems
Difference Between Abstraction and Encapsulation
- Abstraction hides implementation complexity
- Encapsulation hides internal data
- Abstraction focuses on behavior
- Encapsulation focuses on security
Common Interview Questions
- What is the difference between abstraction and encapsulation?
- Why does Java support OOP?
- Can Java achieve multiple inheritance?
- What is runtime polymorphism?
- Why are getters and setters used?
- Difference between method overloading and overriding?
- What is an abstract class?
- What is the role of interfaces?
Practical Industry Examples
- Spring Boot uses abstraction and dependency injection
- Hibernate uses encapsulation for entity management
- Microservices use interfaces heavily
- Banking systems rely on polymorphism
- E-commerce platforms use inheritance for product types
Final Summary
- Classes are blueprints
- Objects are real instances
- Encapsulation protects data
- Inheritance enables code reuse
- Polymorphism provides flexibility
- Abstraction hides complexity
- OOP makes applications scalable and maintainable