Subjects

All subjects Django Java Python React Spring Boot JavaScript PHP
Sign Up Free
Question 1 of 10 · Object-Oriented Programming (OOP)
Interview question

What is Object-Oriented Programming (OOP) and what are its 4 pillars? Object-Oriented Programming (OOP) क्या है और इसके 4 pillars क्या हैं?

Answer

OOP is a programming paradigm based on objects and classes. The 4 pillars of OOP are: Encapsulation, Inheritance, Polymorphism, and Abstraction.

PillarDescriptionExample
EncapsulationBundling data and methods, hiding internal detailsPrivate variables with getters/setters
InheritanceDerive new classes from existing onesclass Dog(Animal): pass
PolymorphismObjects behave differently based on typeMethod overriding, duck typing
AbstractionHide complexity, show only essential featuresAbstract classes, interfaces
# Encapsulation - hiding internal details
class BankAccount:
    def __init__(self, balance):
        self.__balance = balance  # Private
    
    def deposit(self, amount):
        self.__balance += amount
    
    def get_balance(self):
        return self.__balance

# Inheritance - reusing code
class Animal:
    def speak(self):
        pass

class Dog(Animal):
    def speak(self):
        return 'Woof!'

# Polymorphism - same method, different behavior
dog = Dog()
cat = Cat()
print(dog.speak())  # Woof!
print(cat.speak())  # Meow!

# Abstraction - hide complexity
from abc import ABC, abstractmethod

class Shape(ABC):
    @abstractmethod
    def area(self):
        pass

class Circle(Shape):
    def __init__(self, radius):
        self.radius = radius
    
    def area(self):
        return 3.14 * self.radius ** 2

OOP एक programming paradigm है जो objects और classes पर based है। 4 pillars: Encapsulation, Inheritance, Polymorphism, Abstraction

PillarDescription
EncapsulationData और methods को bundle करना, internal details छुपाना
InheritanceExisting classes से नए classes derive करना
PolymorphismObjects type के आधार पर अलग तरीके से behave करते हैं
AbstractionComplexity छुपाना, essential features दिखाना

Was this answer clear?