86) What is Data Encapsulation ?
Data Encapsulation is defined as the process of hiding the important fields from the end user. In the above example, we had used getters and setters to set value for MinSalary. The idea behind this is that, private field “minimumSalary” is an important part of our classes. So if we give a third party code to have complete control over the field without any validation, it can adversely affect the functionality. This is inline with the OOPS Concept that an external user should know about the what an object does. How it does it, should be decided by the program. So if a user set a negative value for MinSalary, we can put a validation in the set method to avoid negative values as shown below
set { if(value > 0) { minSalary = value; } }
87) Explain Inheritance in C# ?
class Car { public Car() { Console.WriteLine("Base Class Car"); } public void DriveType() { Console.WriteLine("Right Hand Drive"); } } class Ford : Car { public Ford() { Console.WriteLine("Derived Class Ford"); } public void Price() { Console.WriteLine("Ford Price : 100K $"); } }
Ford CarFord = new Ford(); CarFord.DriveType(); CarFord.Price();
Base Class Car Derived Class Ford Right Hand Drive Ford Price : 100K $
What this means is that, all the methods and attributes of Base Class car are available in Derived Class Ford. When an object of class Ford is created, constructors of the Base and Derived class get invoked. Even though there is no method called DriveType() in Class Ford, we are able to invoke the method because of inheriting Base Class methods to derived class.
88) Can Multiple Inheritance implemented in C# ?
In C#, derived classes can inherit from one base class only. If you want to inherit from multiple base classes, use interface.
89) What is Polymorphism in C# ?
The ability of a programming language to process objects in different ways depending on their data type or class is known as Polymorphism. There are two types of polymorphism
- Compile time polymorphism. Best example is Overloading
- Runtime polymorphism. Best example is Overriding
90) Explain the use of Virtual Keyword in C# ?
When we want to give permission to a derived class to override a method in base class, Virtual keyword is used. For example. lets us look at the classes Car and Ford as shown below.
class Car { public Car() { Console.WriteLine("Base Class Car"); } public virtual void DriveType() { Console.WriteLine("Right Hand Drive"); } } class Ford : Car { public Ford() { Console.WriteLine("Derived Class Ford"); } public void Price() { Console.WriteLine("Ford Price : 100K $"); } public override void DriveType() { Console.WriteLine("Right Hand "); } }
When following lines of code get executed
Car CarFord = new Car(); CarFord.DriveType(); CarFord = new Ford(); CarFord.DriveType();
Output is as given below.
Base Class Car Right Hand Drive Base Class Car Derived Class Ford Right Hand