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 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
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.
Example
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.