**code example**namespace Abstract_Classess
{
class Program
{
abstract class abstract_class
{
public abstract void abstract_method(); //public, protected
public void concrete_method() //public,private, protected
{
//do this and that
//print "concreate class"
}
}
class abs_derived1 : abstract_class
{
void abstract_method()
{
//specific functionality one
//add 1
}
void norm_method()
{
}
}
class abs_derived2 : abstract_class
{
void abstract_method()
{
//specific functionality two
//add 5
}
}
static void Main(string[] args)
{
abstract_class abs_class = new abstract_class();
//cannont create an object of an abstract class
abstract_class abs_der1 = new abs_derived1(); //possible
abstract_class abs_der2 = new abs_derived2(); //possible
abs_der1.abstract_method(); //possible
abs_der1.concrete_method(); //possible
abs_der1.abstract_method(); //impossible
/* not possbile since its not declared in the abstract class.
* if needs to call, the function header must be in the abstract class as an abstract method.
*if you need to call it, create an object from an abstract_derived caalss and call it like below*/
abs_derived1 abs_der1_obj = new abs_derived1();
abs_der1_obj.norm_method(); //possible
abs_der2.abstract_method();//possible
abs_der2.concrete_method();//possible
}
}
}