Now when it is known what exactly the Animal is going to be, we create another class which inherits the base class. If we know that the animal is in fact a Dog, we create Dog class which inherits the main base class. The key difference here is that the Dog class cannot change the definition of the Description method of the Animal class. It has to define its own C# abstract method called Dog-Description. This is the basic concept of C# abstract classes.

Create an Abstract Class in C#

Let’s see abstract class in C# with real time examples on how we can change our code to include a C# abstract class. Note that we will not be running the code, because there is nothing that can be run using an C# abstraction class. Step 1) As a first step, let’s create an abstract class. The class will be called Tutorial and will just have one method. All the code needs to be written in the Program.cs file.

Code Explanation:-

We first define the abstract class. Note the use of the abstract keyword. This is used to denote that the class is an abstract class. Next, we are defining our method which does nothing. The method must have the keyword called virtual. This means that the method cannot be changed by the child class. This is a basic requirement for any abstract class.

Step 2) Now let’s add our child class. This code is added to the Program.cs file.

There is nothing exceptional about this code. We just define a class called ‘Guru99Tutorial’ which inherits the abstract Tutorial class. We then define the same methods as we have been using from before. Note: Here we cannot change the definition of the Set method which was defined in the Tutorial class. In the Tutorial class, we had defined a method called ‘Set’ (public virtual void Set()). Since the method was part of the abstract class C#, we are not allowed to define the Set method again in the Guru99Tutorial class.

Summary

An abstract class in C sharp is a base class that has the very basic requirements of what a class should look like. It is not possible for the child class to inherit the methods of the base class.