Qus :- What is Abstract class ?
Ans :- Abstraction is one of the principle of object oriented programming. If a class is defined as abstract then we can't create an instance of that class. It is used to display only necessary and essential features of an object.
Basic Concepts :
1. An abstract base class can not be instantiated; it means the object of that class can not be created.
2. If an abstract class's all method is abstract then this class will be a pure abstract base class.
3. An abstract class holds the methods, but the actual implementation of those methods is made in derived class.
Real world example : (Take an example of a car)
We know a car has below things :
a) Color b) Steering c) Gear d) Mirror e) Brakes
f) Exhaust System g) Diesal Engine h) Battery i) Engine etc
Before starting a car we must know below necessary things :
a) Color b) Steering c) Mirror d) Brakes and e) Gear
these are abstract methods.
We no need to know below things :
a) Internal details of a car b) Engine c) Diesal Engine d) Exhaust System etc.
These are Encapsulate.
Coding Example : (Console application)
Declare an abstract class named Animal, which has an abstract method named Eat() and a normal method named Sound().
{
public abstract string Eat();
public string Sound()
{
return "Dog can sound. (From Animal)";
}
}
Now declare a derive class named Dog which inherited Animal abstract class and has one override method named Eat()
class Dog : Animal
{
public override string Eat()
{
return "Dog can eat. (From Dog)";
}
}
Now we are going to run this code.
{
static void Main(string[] args)
{
Dog oDog = new Dog();
string a = oDog.Sound();
string b = oDog.Eat();
//Animal oAnimal = new Animal(); //Cannot create an instance of the abstarct class
Animal oAnimal = new Dog();
string c = oAnimal.Eat();
Console.Write("{0} \n{1} \n{2}", a, b, c);
Console.ReadLine();
}
}
Here we can see :-
oDog.Sound() => returns base class (Animal) method result.
oDog.Eat() = > returns deirve class (Dog) method result.
oAnimal.Eat() => it also return derive class (Dog) method result.