OOPs (Object-Oriented Programming) Interview Questions in Python

1) What is Object-Oriented Programming (OOP)?

OOP is a programming paradigm based on the concept of objects, which contain data (attributes) and methods (functions). It allows for code reusability, modularity, and abstraction.

Key principles of OOP:

  • Encapsulation : Hiding data inside a class and restricting direct access.
  • Abstraction : Hiding implementation details and exposing only necessary parts.
  • Inheritance : Reusing code by creating a new class from an existing one.
  • Polymorphism : Having multiple forms of the same method (overloading & overriding).

2) What is a Class and an Object?

  • A class is a blueprint/template for creating objects.
  • An object is an instance of a class.

3) What is Encapsulation?

--> Encapsulation is the process of hiding data within a class and only allowing controlled access via methods.
--> In Python, we use private attributes (__varname) to enforce encapsulation.

4) What is Inheritance?

Inheritance allows a class (child class) to inherit attributes and methods from another class (parent class).

Types of inheritance:

  • Single Inheritance → A child class inherits from a single parent class.
  • Multiple Inheritance → A child class inherits from multiple parent classes.
  • Multilevel Inheritance → A child class inherits from a parent class, which itself inherits from another parent.
  • Hierarchical Inheritance → Multiple child classes inherit from a single parent class.
  • Hybrid Inheritance → A mix of two or more types of inheritance (e.g., multiple + multilevel).

5) What is Polymorphism?

Polymorphism allows different classes to use the same method name but behave differently.

6) What is Abstraction?

--> Abstraction means hiding implementation details and exposing only the required functionalities using abstract classes.
--> Python provides ABC (Abstract Base Class) to achieve abstraction.

7) What is the difference between Method Overloading and Method Overriding?

Method overloading : Same method name with different parameters in the same class.
Method Overriding : Same method name and same parameters in a parent-child relationship (Inheritance).