Data Science Certification Training with Pyth ...
- 86k Enrolled Learners
- Live Class
Object-Oriented Programming is one of the main concepts in the programming world, therefore, every interview that you attend requires knowledge of OOPs. This article compiles the most frequently asked OOPs Interview Questions for freshers which will help you ace your interviews. So go ahead and get prepared.
Let’s take a quick look at all the topics of discussion:
|Object-Oriented Programming||Structural Programming|
|Object-Oriented Programming is a type of programming which is based on objects rather than just functions and procedures||Provides logical structure to a program where programs are divided functions|
|Bottom-up approach||Top-down approach|
|Provides data hiding||Does not provide data hiding|
|Can solve problems of any complexity||Can solve moderate problems|
|Code can be reused thereby reducing redundancy||Does not support code reusability|
Object-Oriented Programming(OOPs) is a type of programming that is based on objects rather than just functions and procedures. Individual objects are grouped into classes. OOPs implements real-world entities like inheritance, polymorphism, hiding, etc into programming. It also allows binding data and code together.
To know more about OOPs in JAVA, Python, and C++ you can go through the following blogs:
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.
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.
Structure: A structure is basically a user-defined collection of variables which are of different data types.
Yes, you can call the base class without instantiating it if:
|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||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:
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.
|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|
Hybrid inheritance is a combination of multiple and multi-level 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.
To know more about inheritance in Java and Python, read the below articles:
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.
18. What is polymorphism?
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.
Static polymorphism (static binding) is a kind of polymorphism that occurs at compile time. An example of compile-time polymorphism is method overloading.
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.
|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|
To know more about polymorphism in Java and Python, read the below articles:
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.
|Name||Accessibility from own class||Accessibility from derived class||Accessibility from world|
To know more about encapsulation read along:
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.
Data abstraction can be achieved through:
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.
|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|
To know more about data abstraction, below articles might help you:
Methods and Functions OOPs interview questions
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.
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:
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.
|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|
|Basis for comparison||Abstract Class||Interface|
|Can have abstract as well as other methods||Only abstract methods|
|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|
|Can provide the implementation of an interface||Cannot provide the implementation of an abstract class|
A variable whose value does not change. It always refers to the same object by the property of non-transversity.
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.
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.
|Errors are problems that should not be encountered by applications||Conditions that an application might try to catch|
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.
Hope you are clear with all that has been shared with you in this tutorial. This brings us to the end of our article on OOPs Interview Questions. Make sure you practice as much as possible and revert your experience.
Got a question for us? Please mention it in the comments section of this “OOPS Interview Questions” blog and we will get back to you as soon as possible.