In This post you learn about OOP's interview Questions. Object-Oriented Programming has become an essential part of software development. Most of today’s top programming languages are OOPs compatible. Professionals aiming for a lucrative career in the IT world should possess a strong understanding of OOPs concepts.
We have compiled these top frequently asked OOPs interview questions and answers in this blog,covering basic to advanced concepts to help you out. We hope these interview questions will definitely help you to clear your interview. Best Luck.
1. What is Object Oriented Programming?
OOPs
refers to Object-Oriented Programming. It is the programming paradigm that is
defined using objects. Individual
objects are grouped into classes. Objects can be considered as real-world instances of
entities like class, that have some characteristics and behaviors.
2. Why use OOPs?
- OOPs allows clarity in
programming thereby allowing simplicity in solving complex problems
- Code can be reused through
inheritance thereby reducing redundancy
- Data and code are bound
together by encapsulation
- OOPs allows data hiding,
therefore, private data is kept confidential
- Problems can be divided into
different parts making it simple to solve
- The concept of polymorphism
gives flexibility to the program by allowing the entities to have multiple
forms
3. What is the difference between OOP and SOP?
4. What is the need for OOPs?
There are many reasons why OOPs
is mostly preferred, but the most important among them are:
·
OOPs helps users to understand the software easily,
although they don’t know the actual implementation.
·
With OOPs, the readability, understandability, and
maintainability of the code increase multifold.
·
Even very big software can be easily written and
managed easily using OOPs.
5. What are the main features of OOPs?
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.
Class is a Collection of Objects.
Class is logical entity.
7. What is an object?
An object is a real-world entity which is the basic unit of OOPs
for example chair, cat, dog, etc. Different objects have different states or
attributes, and behaviors.
8. What is meant by Structured Programming?
Structured Programming refers to the
method of programming which consists of a completely structured control flow.
Here structure refers to a block, which contains a set of rules, and has a
definitive control flow, such as (if/then/else), (while and for), block
structures, and subroutines.
Nearly
all programming paradigms include Structured programming, including the OOPs
model.
9. What are some advantages of using OOPs?
- · OOPs is very helpful in solving very complex level of problems.
- ·
Highly
complex programs can be created, handled, and maintained easily using
object-oriented programming.
- ·
OOPs,
promote code reuse, thereby reducing redundancy.
- ·
OOPs
also helps to hide the unnecessary details with the help of Data Abstraction.
- ·
OOPs,
are based on a bottom-up approach, unlike the Structural programming paradigm,
which uses a top-down approach.
- ·
Polymorphism
offers a lot of flexibility in OOPs
10. Why is OOPs so popular?
OOPs
programming paradigm is considered as a better style of programming. Not only
it helps in writing a complex piece of code easily, but it also allows users to
handle and maintain them easily as well. Not only that, the main pillar of OOPs
- Data Abstraction, Encapsulation, Inheritance, and Polymorphism, makes it easy
for programmers to solve complex scenarios. As a result of these, OOPs is so
popular.
11. 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.
12. 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
13. What is encapsulation?
all
the necessary data and methods are bind together and all the unnecessary
details are hidden to the normal user. So Encapsulation is the process of
binding data members and methods of a program together to do a specific job,
without revealing unnecessary details.
Encapsulation can also be defined in two
different ways:
1) Data
hiding: Encapsulation is the process of hiding unwanted
information, such as restricting access to any member of an object.
2) Data
binding: Encapsulation is the process of binding the data
members and the methods together as a whole, as a class.
14. What is Polymorphism?
Polymorphism
is composed of two words - “poly” which means “many”, and “morph” which means
“shapes”. Therefore Polymorphism refers to something that has many shapes.
15. What is the difference between a class and an
object?
Object |
Class |
A real-world entity which is an instance of a class |
A class is basically a template or a blueprint within which 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 |
|
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 |
16. What is a superclass?
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.
17. What is a subclass?
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
18. What is inheritance?
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.
19. What are the different types of inheritance?
- Single inheritance
- Multiple inheritance
- Multilevel inheritance
- Hierarchical inheritance
- Hybrid inheritance
20. What is the difference between multiple and multilevel inheritance?
Multiple Inheritance |
Multilevel Inheritance |
Multiple inheritance comes into picture
when a class inherits more than one base class |
Multilevel inheritance means a class
inherits from another class which itself is a subclass of some other base
class |
Example: A class defining a child
inherits from two base classes Mother and Father |
Example: A class describing a sports car
will inherit from a base class Car which inturn inherits another class
Vehicle |
21. What is hybrid inheritance?
Hybrid inheritance is a combination of multiple and multi-level
inheritance.
22. What is hierarchical 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.
23. What are the limitations of inheritance?
- 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
24. What is static polymorphism?
Static polymorphism (static binding)
is a kind of polymorphism that occurs at compile time. An example of
compile-time polymorphism is method overloading.
25. What is dynamic polymorphism?
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.
26. What is method overloading?
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.
27. What is method overriding?
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.
28. What is operator overloading?
Operator overloading refers to
implementing operators using user-defined types based on the arguments passed
along with it.
29. Differentiate between overloading and overriding.
Overloading |
Overriding |
Two or more methods having the same name
but different parameters or signature |
Child class redefining methods present in
the base class with the same parameters/ signature |
Resolved during compile-time |
Resolved during runtime |
30. How much
memory does a class occupy?
Classes
do not consume any memory. They are just a blueprint based on which objects are
created. Now when objects are created, they actually initialize the class
members and methods and therefore consume memory.
31. Is it
always necessary to create objects from class?
No.
An object is necessary to be created if the base class has non-static methods.
But if the class has static methods, then objects don’t need to be created. You
can call the class method directly in this case, using the class name.
32. What is encapsulation?
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.
33. What are ‘access specifiers’?
34. 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.
35. How to achieve data abstraction?
Data abstraction can be
achieved through:
- Abstract
class
- Abstract
method
36. What is an abstract class?
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.
37. 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.
38. What is an interface?
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.
39. Differentiate between data abstraction and encapsulation?
Data abstraction |
Encapsulation |
Solves the problem at the design level |
Solves the problem at the implementation
level |
Allows showing important aspects while
hiding implementation details |
Binds code and data together into a
single unit and hides it from the world |
40. What are virtual functions?
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.
41. What are pure virtual functions?
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.
42. What is a constructor?
A constructor is a special type
of method that has the same name as the class and is used to initialize objects
of that class.
43. What is a destructor?
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.
44. Types of constructors?
Types of constructors differ from language to language. However, all the possible constructors are:
- Default
constructor
- Parameterized
constructor
- Copy
constructor
- Static
constructor
- Private
constructor
45. What is a copy 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.
Copy Constructor is a type of constructor, whose purpose is to copy an object to another. What it means is that a copy constructor will clone an object and its values, into another object, is provided that both the objects are of the same class.
46. What is the use of ‘finalize’?
Finalize as an object method
used to free up unmanaged resources and cleanup before Garbage Collection(GC).
It performs memory management tasks.
47. What is Garbage Collection(GC)?
GC is an implementation of
automatic memory management. The Garbage collector frees up space occupied by
objects that are no longer in existence.
48. Differentiate between a class and a method?
Class |
Method |
A class is basically a template that
binds the code and data together into a single unit. Classes consist of
methods, variables, etc |
Callable set of instructions also called
a procedure or function that are to be performed on the given data |
49. Differentiate between an abstract class and an interface?
Basis for comparison |
Abstract Class |
Interface |
Methods |
Can have abstract as well as other
methods |
Only abstract methods |
Final
Variables |
May contain final and non-final variables |
Variables declared are final by default |
Accessibility
of Data Members |
Can be private, public, etc |
Public by default |
Implementation |
Can provide the implementation of an
interface |
Cannot provide the implementation of an
abstract class |
50. What is a final variable?
A variable whose value does not
change. It always refers to the same object by the property of non-transversity.
OOPs Interview Questions – Exception Handling
51. What is an exception?
An exception is a kind of
notification that interrupts the normal execution of a program. Exceptions
provide a pattern to the error and transfer the error to the exception handler
to resolve it. The state of the program is saved as soon as an exception is
raised.
An exception can be considered as a special event, which is raised during the execution of a program at runtime, that brings the execution to a halt. The reason for the exception is mainly due to a position in the program, where the user wants to do something for which the program is not specified, like undesirable input.
52. What is exception
handling?
Exception handling in
Object-Oriented Programming is a very important concept that is used to manage
errors. An exception handler allows errors to be thrown and caught and
implements a centralized mechanism to resolve them.
53. What is the difference
between an error and an exception?
Error |
Exception |
Errors are problems that should not be
encountered by applications |
Conditions that an application might try
to catch |
54. What is a try/ catch
block?
A try/
catch block is used to handle exceptions. The try block defines a set of
statements that may lead to an error. The catch block basically catches the
exception.
55. What is a finally block?
A finally block consists of
code that is used to execute important code such as closing a connection, etc.
This block executes when the try block exits. It also makes sure that finally
block executes even in case some unexpected exception is encountered.
56. What is meant by Garbage Collection in OOPs world?
Object-oriented programming revolves around entities like objects. Each object consumes memory and there can be multiple objects of a class. So if these objects and their memories are not handled properly, then it might lead to certain memory-related errors and the system might fail.
Garbage collection refers to this mechanism of handling the memory in the program. Through garbage collection, the unwanted memory is freed up by removing the objects that are no longer needed.
57. Can we run a Java application without implementing the OOPs concept?
No. Java applications are based on Object-oriented programming models or OOPs concept, and hence they cannot be implemented without it.
OOPs Interview Questions – Limitations of OOPs
58. What are the
limitations of OOPs?
- Usually
not suitable for small problems
- Requires
intensive testing
- Takes
more time to solve the problem
- Requires
proper planning
- The
programmer should think of solving a problem in terms of objects