Oops Viva Questions
Oops Viva Questions
• Inheritance
• Encapsulation
• Polymorphism
• Data Abstraction
5. 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.
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: User-defined blueprint from which objects are created. It consists of methods or
set of instructions that are to be performed on the objects.
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
A real-world entity which is an instance of a
blueprint within which objects can be
class
created
Binds methods and data together into a
An object acts like a variable of the class
single unit
An object is a physical entity A class is a logical entity
Objects take memory space when they are A class does not take memory space when
created created
Objects can be declared as and when
Classes are declared just once
required
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.
11. What are the different types of inheritance?
• 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.
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.
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.
Overloading Overriding
Two or more methods having the same name Child class redefining methods present in the
but different parameters or signature base class with the same parameters/ signature
Resolved during compile-time Resolved during runtime
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 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.
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.
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 constructor is a special type of method that has the same name as the class and is
used to initialize objects of that class.
37. What is a destructor?
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.
Class Method
A class is basically a template that binds the Callable set of instructions also called a
code and data together into a single unit. procedure or function that are to be performed
Classes consist of methods, variables, etc on the given 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.
Error Exception
Errors are problems that should not be Conditions that an application might try to
encountered by applications catch
48. 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.
49. 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.