In C#, inheritance is a process in which one object acquires all the properties and behaviors of its parent object automatically. In such way, you can reuse, extend or modify the attributes and behaviors which is defined in other class.
In C#, the class which inherits the members of another class is called derived class and the class whose members are inherited is called base class. The derived class is the specialized class for the base class.
The idea of inheritance implements the IS-A relationship. For example, mammal IS A animal, dog IS-A mammal hence dog IS-A animal as well, and so on.
Advantage of C# Inheritance is Code reusability: Now you can reuse the members of your parent class. So, there is no need to define the member again. So less code is required in the class.
A class can be derived from more than one class or interface, which means that it can inherit data and functions from multiple base classes or interfaces.
The syntax used in C# for creating derived classes is as follows −
class { ... } class : { ... }
When one class inherits another class, it is known as single level inheritance. Let’s see the example of single level inheritance which inherits the fields from the base class.
using System; public class Employee { public float salary = 40000; } public class Programmer: Employee { public float bonus = 10000; } class TestInheritance{ public static void Main(string[] args) { Programmer p1 = new Programmer(); Console.WriteLine("Salary: " + p1.salary); Console.WriteLine("Bonus: " + p1.bonus); } }
Output:
Salary: 40000 Bonus: 10000
In the above example, Employee is the base class and Programmer is the derived class.
When one class inherits another class which is further inherited by another class, it is known as multi level inheritance in C#. Inheritance is transitive so the last derived class acquires all the members of all its base classes.
Let’s see the example of multi level inheritance in C#.
using System; public class Animal { public void eat() { Console.WriteLine("Eating..."); } } public class Dog: Animal { public void bark() { Console.WriteLine("Barking..."); } } public class BabyDog : Dog { public void weep() { Console.WriteLine("Weeping..."); } } class TestInheritance2{ public static void Main(string[] args) { BabyDog d1 = new BabyDog(); d1.eat(); d1.bark(); d1.weep(); } }
Output:
Eating... Barking... Weeping...
Try the following example in the editor below.
With reference to above example, create a derived class Rectangle inherited from class Shape, your task is to create a public function in it named GetArea
which return the area of rectange.