Basic OOPs Interview Questions
Basic OOPs Interview Questions
To know more about OOPs in JAVA, Python, and C++ you can go through the following blogs:
6. What is a class?
A class is a prototype that consists of objects in different states and with different behaviors. It has a number of methods
that are common the objects present within that class.
7. What is the difference between a class and a structure?
Class: User-defined blueprint from which objects are created. It consists of methods or set of instructions that are to be
performed on the objects.
Structure: A structure is basically a user-defined collection of variables which are of different data types.
8. Can you call the base class method without creating an instance?
Yes, you can call the base class without instantiating it if:
It is a static method
The base class is inherited by some other subclass
Object Class
A class is basically a template or a blueprint within which
A real-world entity which is an instance of a class
objects can be created
An object acts like a variable of the class Binds methods and data together into a single unit
An object is a physical entity A class is a logical entity
Objects take memory space when they are created A class does not take memory space when created
Objects can be declared as and when required Classes are declared just once
To know more about objects and classes in JAVA, Python, and C++ you can go through the following blogs:
Objects in Java
Class in Java
Objects and classes in Python
Objects in C++
Inheritance is a feature of OOPs which allows classes inherit common properties from other classes. For example, if
there is a class such as ‘vehicle’, other classes like ‘car’, ‘bike’, etc can inherit common properties from the vehicle
class. This property helps you get rid of redundant code thereby reducing the overall size of the code.
Single inheritance
Multiple inheritance
Multilevel inheritance
Hierarchical inheritance
Hybrid inheritance
Hierarchical inheritance refers to inheritance where one base class has more than one subclasses. For example, the
vehicle class can have ‘car’, ‘bike’, etc as its subclasses.
Increases the time and effort required to execute a program as it requires jumping back and forth between
different classes
The parent class and the child class get tightly coupled
Any modifications to the program would require changes both in the parent as well as the child class
Needs careful implementation else would lead to incorrect results
To know more about inheritance in Java and Python, read the below articles:
Inheritance in Java
Inheritance in Python
A superclass or base class is a class that acts as a parent to some other class or classes. For example, the Vehicle
class is a superclass of class Car.
A class that inherits from another class is called the subclass. For example, the class Car is a subclass or a derived of
Vehicle class.
Polymorphism refers to the ability to exist in multiple forms. Multiple definitions can be given to a single interface. For
example, if you have a class named Vehicle, it can have a method named speed but you cannot define it because
different vehicles have different speed. This method will be defined in the subclasses with different definitions for
different vehicles.
Runtime polymorphism or dynamic polymorphism (dynamic binding) is a type of polymorphism which is resolved during
runtime. An example of runtime polymorphism is method overriding.
Method overloading is a feature of OOPs which makes it possible to give the same name to more than one methods
within a class if the arguments passed differ.
Method overriding is a feature of OOPs by which the child class or the subclass can redefine methods present in the
base class or parent class. Here, the method that is overridden has the same name as well as the signature meaning
the arguments passed and the return type.
Operator overloading refers to implementing operators using user-defined types based on the arguments passed along
with it.
Overloading Overriding
Two or more methods having the same name but Child class redefining methods present in the base
different parameters or signature class with the same parameters/ signature
Resolved during compile-time Resolved during runtime
To know more about polymorphism in Java and Python, read the below articles:
Polymorphism in Java
Polymorphism in Python
Encapsulation refers to binding the data and the code that works on that together in a single unit. For example, a class.
Encapsulation also allows data-hiding as the data specified in one class is hidden from other classes.
Access specifiers or access modifiers are keywords that determine the accessibility of methods, classes, etc in OOPs.
These access specifiers allow the implementation of encapsulation. The most common access specifiers are public,
private and protected. However, there are a few more which are specific to the programming languages.
27. What is the difference between public, private and protected access modifiers?
Data abstraction
28. What is data abstraction?
Data abstraction is a very important feature of OOPs that allows displaying only the important information and hiding the
implementation details. For example, while riding a bike, you know that if you raise the accelerator, the speed will
increase, but you don’t know how it actually happens. This is data abstraction as the implementation details are hidden
from the rider.
Abstract class
Abstract method
An abstract class is a class that consists of abstract methods. These methods are basically declared but not defined. If
these methods are to be used in some subclass, they need to be exclusively defined in the subclass.
Next
31. Can you create an instance of an abstract class?
No. Instances of an abstract class cannot be created because it does not have a complete implementation. However,
instances of subclass inheriting the abstract class can be created.
It is a concept of OOPs that allows you to declare methods without defining them. Interfaces, unlike classes, are not
blueprints because they do not contain detailed instructions or actions to be performed. Any class that implements an
interface defines the methods of the interface.
Abstraction in Java
Abstraction in Python
Virtual functions are functions that are present in the parent class and are overridden by the subclass. These functions
are used to achieve runtime polymorphism.
Pure virtual functions or abstract functions are functions that are only declared in the base class. This means that they
do not contain any definition in the base class and need to be redefined in the subclass.
A destructor is a method that is automatically invoked when an object is destroyed. The destructor also recovers the
heap space that was allocated to the destroyed object, closes the files and database connections of the object, etc.
Types of constructors differ from language to language. However, all the possible constructors are:
Default constructor
Parameterized constructor
Copy constructor
Static constructor
Private constructor
A copy constructor creates objects by copying variables from another object of the same class. The main aim of a copy
constructor is to create a new object from an existing one.
Finalize as an object method used to free up unmanaged resources and cleanup before Garbage Collection(GC). It
performs memory management tasks.
GC is an implementation of automatic memory management. The Garbage collector frees up space occupied by objects
that are no longer in existence.
Class Method
A class is basically a template that binds the code Callable set of instructions also called a procedure
and data together into a single unit. Classes consist or function that are to be performed on the given
of methods, variables, etc data
43. Differentiate between an abstract class and an interface?
A variable whose value does not change. It always refers to the same object by the property of non-transversity.