oop's interview questions

Programming languages or concepts
0

 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?

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

 

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?

  • Inheritance
  • Encapsulation
  • Polymorphism
  • Data Abstraction

 

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

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

 

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’?

             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.

 

 

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

 

 


Post a Comment

0Comments

Post a Comment (0)
close