Abstract Class In C#

C# Abstract Class

An abstract class is an incomplete class or special class we can't be instantiated. The purpose of an abstract class is to provide a blueprint for derived classes and set some rules what the derived classes must implement when they inherit an abstract class.

We can use an abstract class as a base class and all derived classes must implement abstract definitions. An abstract method must be implemented in all non-abstract classes using the override keyword. After overriding the abstract method is in the non-Abstract class. We can derive this class in another class and again we can override the same abstract method with it.

C# Abstract Class Features

  1. An abstract class can inherit from a class and one or more interfaces.
  2. An abstract class can implement code with non-Abstract methods.
  3. An Abstract class can have modifiers for methods, properties etc.
  4. An Abstract class can have constants and fields.
  5. An abstract class can implement a property.
  6. An abstract class can have constructors or destructors.
  7. An abstract class cannot be inherited from by structures.
  8. An abstract class cannot support multiple inheritance.

Example 1

#region  
  
//An abstract calss can inherit from a class and one or more interfaces.  
  
interface IVendorTransDetails  
{  
    void getVendorID();  
}  
interface IClaimsTracker  
{  
    void getSeqID();  
}  
class ClaimsMaster  
{  
    string getDCNNO()  
    {  
        return "PC20100308A00005";  
    }  
}

Example 2

abstract class Abstract : ClaimsMaster, IClaimsTracker, IVendorTransDetails  
{  
    //Here we should implement modifiers oterwise it throws complie-time error  
    public void getVendorID()  
    {  
        int s = new int();  
        s = 001;  
        Console.Write(s);  
    }  
  
    public void getSeqID()  
    {  
        int SeqID = new int();  
        SeqID = 001;  
        Console.Write(SeqID);  
    }  
}   
#endregion

Example 3

#region  
  
//An abstract class can implement code with non-Abstract methods.  
  
abstract class NonAbstractMethod  
{  
    //It is a Non-abstract method we should implement code into the nonabstract method on the class.   
    public string getDcn()  
    {  
        return "PS20100301A0012";  
    }   
    public abstract void getSeqID();   
}   
class Utilize : NonAbstractMethod  
{  
    public override void getSeqID()  
    {  
    }
}   
#endregion  

Example 4

#region   
//Abstract class can have modifiers for methods,properties and An abstract class can implement a property  
  
public abstract class abstractModifier  
{  
    private int id;   
    public int ID  
    {  
        get { return id; }  
        set { id = value; }  
    }   
    internal abstract void Add();  
}   
#endregion

Example 5

#region   
//Abstract class can have constant and fields  
public abstract class ConstantFields  
{  
    public int no;  
    private const int id = 10;  
}  
#endregion

Example 6

#region   
//An abstract class can have constructors or destructors  
abstract class ConsDes  
{  
    ConsDes()  
    {  
    }  
    ~ConsDes()  
    {  
    }  
}  
#endregion

Example 7

#region   
//An abstract class cannot be inherited from by structures  
public struct test  
{  
}  
//We can't inheritance the struct class on the abstract class  
abstract class NotInheritanceStruct  
{  
}  
#endregion

Example 8

#region   
//An abstract class cannot support multiple inheritance  
class A  
{  
}  
class B : A  
{  
}  
abstract class Container : B //But we can't iherit like this : A,B  
{  
}  
#endregion

Conclusion

In this article, I have given some simple examples of how to use abstract classes in C#. 

Here is a detailed article on Abstract Classes In C#.

Here is another related reading: Method Overloading and Overriding In C#


Similar Articles