Introduction
An Abstract class is a class that cannot be instantiated. An Abstract keyword enables you to create classes and class members that are incomplete and must be implemented in derived class.
An Abstract class is a class that cannot be instantiated. An Abstract keyword enables you to create classes and class members that are incomplete and must be implemented in derived class.
An abstract class can contain abstract
methods, non abstract methods, fields, constant, properties, constructor and
destructor.
The purpose of abstract class is to provide a common definition of a base class that multiple derived class can use. Class can be declared as Abstract by putting Abstract before the class definition.
Syntax
The purpose of abstract class is to provide a common definition of a base class that multiple derived class can use. Class can be declared as Abstract by putting Abstract before the class definition.
Syntax
Abstract
class classname
{
// code
comes here
}
Method can be declared as abstract by adding
the keyword abstract before the return type of method.
Imp: Abstract methods have no implementation, method definition is followed by semicolon instead of a method block. An Abstract method is implemented using override keyword.
Derive class of abstract class must implement all abstract methods otherwise it will generate an error.
Imp: Abstract methods have no implementation, method definition is followed by semicolon instead of a method block. An Abstract method is implemented using override keyword.
Derive class of abstract class must implement all abstract methods otherwise it will generate an error.
Example
An example of abstract class:
An example of abstract class:
using System;
namespace abstractclass
{
public abstract class a
{
public abstract void m();
}
class Program : a
{
static void Main(string[] args)
{
Console.WriteLine("Hello In main method");
Console.ReadKey();
}
}
}
generate an
error " abstractclass.Program does not implement inherited abstract member
abstractclass.a.m()".
Correct Program
using System;
namespace abstractclass
{
public abstract class a
{
public abstract void m();
}
class Program : a
{
public override void m()
{
Console.WriteLine("abstract class method");
}
static void Main(string[] args)
{
Program p = new Program();
p.m();
Console.WriteLine("Hello In main method");
Console.ReadKey();
}
}
}
Output

Important points regarding Abstract class and Abstract Method
- Abstract method cannot be declare static and if do so it will generate an error ( reason: because static method cannot be marked as override, abstract or virtual).
- Can not use sealed keyword with Abstract method.
- Abstract class cannot be made private.

Join the conversation! Your thoughts help the community grow.