OOPS Interview Questions For Experienced
OOPS Interview Questions for Experienced
Uses of OOPS-
3. Binding of Data
Go through the page in detailed to know more about OOPS Interview Questions for Experienced.
What is OOPS?
“Object-Oriented Programming” is the abbreviation for “Object-Oriented Programming.” Instead of only functions and methods, OOP (not Oops!) refers to a programming approach focused on objects.
There are four pillars of Object-Oriented Programming concept and they pretty much run the OOPS concept in C++ –
Important Pages to check
Commonly Asked OOPS Interview Questions for Experienced
1. What is OOPs?
OOPs (Object-Oriented Programming) 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.
2. What is Polymorphism?
Polymorphism is the process of assigning actions or meaning to something that has already been declared in the main class in a subclass.
In simple terms, polymorphism exists in many forms.
3. What are the advantages of OOPS concepts?
Major advantages of OOPS programming are:
- Simplicity: OOPS programming objects model real-world objects, so the complexity is reduced and the program structure is clear.
- Modularity: Each object forms a separate entity whose internal workings are decoupled from other parts of the system.
- Modifiability: In an OOPs programming, minor changes to the data representation or procedures are simple. Since the only public interface that the outside world has to a class is by the use of methods, changes within a class have little effect on the rest of the software.
- Extensibility: adding new features or responding to changing operating environments can be solved by introducing a few new objects and modifying some existing ones.
- Maintainability: Objects can be maintained separately, making locating and fixing problems easier.
- Reusability: Objects can be reused in different programs.
4. What is encapsulation?
The method of enclosing one or more objects inside a physical or logical package is known as encapsulation. Encapsulation restricts access to implementation information in object-oriented programming.
5. Can you explain what Access Modifiers are?
Access modifiers are used to figure out the scope of the method or variables accessible from other various objects or classes.
Access modifiers can be of five types:
- Protected Friend
6. What is Abstraction?
Abstraction refers to revealing only the most important information while concealing the details. Data abstraction refers to exposing only the most important aspects of the data to the outside world while concealing the implementation information.
In OOPs, class helps us in achieving abstraction.
7. What Is A Virtual Function?
A virtual function is a member function of a class and its functionality can be overridden in its derived class.
This function can be implemented by using a keyword called virtual, and it can be given during function declaration.
A virtual function can be achieved in C++, and it can be achieved in C Language by using function pointers or pointers to function.
8. What is dynamic or run-time polymorphism?
Dynamic or Run time polymorphism is also known as method overriding in which call to an overridden function is resolved during run time, not at the compile time.
It means having two or more methods with the same name, same signature but with different implementations.
9. What is function/method overloading?
Function overloading is a regular function, but it can perform different tasks.
It allows the creation of several methods with the same name which differ from each other by the arguments.
For example :
Suppose you have to perform addition of the given numbers but there can be any number of arguments, if you write the method such as a(int,int) for two parameters, and b(int,int,int) for three parameters then it may be difficult for you as well as other programmers to understand the behavior of the method because its name differs.
10. 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
11. What is the difference between Abstraction and Encapsulation?
- Abstraction gives a class a general structure and leaves the implementation to the implementers. Encapsulation is the process of creating and defining an object’s permissions and constraints, as well as the variables and methods that make up the object.
- In Java, abstraction is accomplished by the use of an interface and an abstract class, while encapsulation is accomplished by the use of four different access level modifiers: public, protected, no modifier, and private.
12. What is the difference between a class and a structure?
- A class is a reference type.
- While instantiating a class, CLR allocates memory for its instance in heap.
- Classes support inheritance.
- Variables of a class can be assigned as null.
- A class can contain constructor/destructor.
- A structure is a value type.
- In structure, memory is allocated on the stack.
- Structures do not support inheritance.
- Structure members cannot have null values.
- The structure does not require a constructor/destructor and members can be initialized automatically.
13. What Are Different Types Of Arguments?
A parameter is a variable used during the declaration of the function or subroutine and arguments are passed to the function, and it should match with the parameter defined.
There are two types of Arguments. They are :
- Call by Value – Value passed will get modified only inside the function, and it returns the same value whatever it is passed into the function.
- Call by Reference – Value passed will get modified both inside and outside the functions and it returns the same or different value.
15. 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 that are specific to the programming languages.
16. Why Java does not support multiple inheritance?
Java was designed to be a simple language and multiple inheritance introduces complexities like the diamond problem. Inheriting states or behaviors from two different type of classes is a case which in reality very rare and it can be achieved easily through an object association.
17. What are similarities between a class and a structure?
The following are some of the similarities between a class and a structure:
- Access specifiers, such as public, private, and protected, are identically used in structures and classes to restrict the access of their data and methods outside their body.
- The access level for class members and struct members, including nested classes and structs, is private by default. Private nested types are not accessible from outside the containing type.
- Both can have constructors, methods, properties, fields, constants, enumerations, events, and event handlers.
- Both structures and classes can implement interfaces to use multiple-inheritance in code.
- Both structures and classes can have constructors with parameters.
- Both structures and classes can have delegates and events.
18. Can you touch upon the core concepts of OOPS?
The core concepts of OOPS are as below:
19. Difference Between Overloading And Overriding?
- Overloading is static binding. Overloading is nothing but the same method with different arguments, and it may or may not return the same value in the same class itself.
- Overriding is dynamic binding. It is the same method names with the same arguments and return types associates with the class and its child class.
20. What are the various types of constructors?
There are three types of constructors:
- Default Constructor – With no parameters.
- Parametric Constructor – With Parameters. Create a new instance of a class and also passing arguments simultaneously.
- Copy Constructor – Which creates a new object as a copy of an existing object.
21. Explain Is Java a pure Object Oriented language?
Java is not an entirely pure object-oriented programming language. The following are the reasons:
- Java supports and uses primitive data types such as int, float, double, char, etc.
- Primitive data types are stored as variables or on the stack instead of the heap.
- In Java, static methods can access static variables without using an object, contrary to object-oriented concepts.
22. Describe class and object in Java?
In object-oriented programming languages like Java, classes and objects are important.
- A class is a prototype or a framework that is used to create objects and has a state and behavior that is supported by an object.
- The object is a representation of the class; for example, Dog is a class with the state of having a tail and four legs, as well as behaviors like canRun() and canWagTail().
23. What is a need for Object-oriented programming?
For more security and control over data access, OOP provides access specifiers and data hiding features, overloading can be accomplished with function and operator overloading, and Code Reuse is possible because objects generated in one program can be reused in another programs.
Data redundancy, code maintenance, data security, and the advantage of concepts such as encapsulation, abstraction, polymorphism, and inheritance in object-oriented programming provide an advantage over previously used procedural programming languages.
24. How many types of inheritance are present?
Various types of inheritance are :
- Single Inheritance: Single child class inherits characteristics of the single-parent class.
- Multiple Inheritance: One class inherits features of more than one base class and is not supported in Java, but the class can implement more than one interface.
- Multilevel Inheritance: A class can inherit from a derived class making it a base class for a new class, for example, a Child inherits behavior from his father, and the father has inherited characteristics from his father.
- Hierarchical Inheritance: One class is inherited by multiple subclasses.
- Hybrid Inheritance: This is a combination of single and multiple inheritances.
25. What is Interface?
In general, an interface is a system that allows two or more unrelated entities to communicate. According to this definition, remote control is an interface between you and a television set, the English language is an interface between two people, and the protocol of behavior enforced in the military is the interface between people of different ranks.
Within the Java programming language, an interface (in the glossary) is a type, just as a class is a type. Like a class, an interface defines methods. Unlike a class, an interface never implements methods; instead, classes that implement the interface implement the methods defined by the interface. A class can implement multiple interfaces.
26. What is the difference between extends and implements?
- A class can extend another class .
- Interface as well inherit (using keyword extends) another interface.
- A subclass extending superclass may not override all of the superclass methods
- A class can only extend a single superclass.
- An interface can extend more than one interface.
- Syntax: class Child extends class Parent
- A class can implement an interface
- Class implementing interface has to implement all the methods of the interface.
- A class can implement any number of interfaces.
- An interface cannot implement any other interface.
- Syntax: class Hybrid implements Rose
27. Explain the difference between abstract class and method?
- An object cannot be created from the abstract class.
- Subclass created or inherit abstract class to access members of an abstract class.
- An abstract class can contain abstract methods or non-abstract methods.
- An abstract method has a signature but does not have a body.
- It is compulsory to override abstract methods of the superclass in their sub-class.
- Class containing abstract method should be made abstract class.
28. What is a constructor in Java?
In Java, a constructor is a block of codes similar to the method.
It is called when an instance of the class is created.
At the time of calling the constructor, memory for the object is allocated in the memory. It is a special type of method which is used to initialize the object.
29. What are the differences between method and constructor?
- Constructor’s name should match with that of Class.
- They are used to create, initialize and allocate memory to the object.
- Constructors are implicitly invoked by the system whenever objects are created.
- They are invoked using a new keyword while creating an instance of the class (object).
- A constructor does not have a return type.
- A constructor cannot be inherited by the subclass.
- Methods should not have the same name as class name.
- Methods are used to execute certain statements written inside them.
- Methods are invoked when it is called.
- Methods are invoked during program execution.
- The method has a return type.
- Methods can be inherited by a sub-class.