Interview Questions- Object Oriented Programming (OOP) in C#
1- What is Object oriented programming?
Object-oriented programming (OOP) is a programming model based on the concept of “objects”. Objects are the real world entities which can have data and some behaviour. Data we call as attributes or fields or properties. Behaviour we call as procedures or methods or functions. Objects use functions to perform operations on the data.
Example- A Mobile phone object can have attributes like brand, model, colour etc. The same object can have some behaviour functions like clickPhoto, saveImage, deleteImage etc.
2- What is a class in C#?
A class is a blueprint of an object that contains variables for storing data and functions to perform operations on the data. It is only a logical representation of data so it don’t occupy any memory space.
To create a class, you simply use the keyword “class” followed by the class name:
class MobilePhone {
}
3- What is Object in C#?
An object is an instance of a class. It is like a bundle of variable and methods for a particular type of real world entities. It may represent a person, a place or any item. Example:
class Employee {
string Name;
int Age;
string Email;
}
Creation of an Employee Object by using employee class
Employee Emp1 = new Employee ();
A class will not occupy any memory space. It is just a template to create objects. When an object is created using the new operator, memory is allocated for the class in the heap.
4- What is Abstraction?
In object oriented programming methodology, Abstraction means revealing only the essential characteristics of a thing without representing the background details. It is the process of hiding the working style of an object, and showing the information of an object in an understandable manner. It lets you focus on what the object does instead of how it does it.
Abstraction provides you a generalized view of your classes or objects by providing relevant information.
In C#, “Abstraction is accomplished using an Interface. Just giving the abstract information about what it can do without specifying the details.”
5- What is encapsulation?
Encapsulation is defined ‘as the process of enclosing one or more items within a physical or logical package’. In other words, Encapsulation is a process of binding data members (variables, properties) and member functions (methods) into a single unit. And Class is the best example of encapsulation.
In object oriented programming methodology, Encapsulation prevents access to implementation details. Through encapsulation a class can hide the internal details of how an object does something. A class can specify how accessible each of its members (variables, properties, and methods) is to code outside of the class or structure. Encapsulation simplifies the interaction between objects. An object can use another object without knowing all its data or how its data is maintained.
Example, an employee object might have name, address, and payroll properties. If a HR object wants to know the employee basic details (name and address), it can request the name and address for the employee without needing to know the payment details of the employee object.
A class uses access modifiers to accomplish the data hiding. These access modifiers are: public, private, protected, internal, and protected internal.
Explain various Access Modifiers in C#.
Access Modifiers describes accessibility of an Object and its members. We can control the accessibility of the member object of a class using access modifiers.
C# provide five access specifiers:
public: public can be access from anywhere that means there is no restriction on accessibility. The scope of the accessibility is inside class as well as outside. The type or member can be accessed by any other code in the same assembly or another assembly that references it.
private: The scope of the accessibility is limited only inside the classes or struct in which they are declared. The private members cannot be accessed outside the class and it is the least permissive access level.
protected: The scope of accessibility is limited within the class or struct and the class derived (Inherited) from this class. It means object of derived class can access the protected member of base class.
internal: The internal access modifiers can access within the program that contain its declarations and also access within the same assembly level but not from another assembly.
protected internal:
Protected internal is the mix access levels of both protected and internal. It can access anywhere in the same assembly and in the same class also the classes inherited from that class.
6- What is Inheritance in Object oriented programming?
Inheritance is one of the most important concepts in object-oriented programming. It is the ability to create a class that inherits attributes and behaviors from an existing class.
In other words, by using inheritance we can define parent class and child class. The child class inherits methods and properties of the parent class, but at the same time, they can also modify the behavior of the methods (method overriding) if required. Inheritance is a concept of code reusability.
7- What is Polymorphism in Object oriented programming?
Polymorphism is one of the fundamental concepts of object-oriented programming. Polymorphism is a Greek word that is created from two words: poly and morphos. The word poly means many and morphos means forms. In other words, “Many forms of a single object is called Polymorphism.”
Object oriented programming uses Polymorphism for using same operator or function with different types of operand and parameters. It means you can define same name method with different number and type of parameters.
There are two types of Polymorphism in C#
- Static Polymorphism
- Function overloading
- Operator overloading
- Dynamic Polymorphism
Dynamic Polymorphism can be achieved by using abstract classes and function overriding.