Learn Inheritance and Polymorphism in one shot.
Example 1:
using System;
public class ParentClass
{
public ParentClass()
{
Console.WriteLine(“Parent Constructor.”);
}
public void print()
{
Console.WriteLine(“I’m a Parent Class.”);
}
}
public class ChildClass : ParentClass
{
public ChildClass()
{
Console.WriteLine(“Child Constructor.”);
}
public void print()
{
Console.WriteLine(“I’m a Parent Class.”);
}
}
public class ResultClass
{
public static void Main()
{
ChildClass child = new ChildClass();
child.print();
ParentClass p = new ChildClass();
p.print();
((ParentClass)child).print();
}
}
Output:
Parent Constructor.
Child Constructor.
I’m a Parent Class.
Parent Constructor.
Child Constructor.
I’m a Parent Class.
I’m a Parent Class.
Example 2:
public class DrawingObject
{
public virtual void Draw()
{
Console.WriteLine(“I’m just a generic drawing object.”);
}
}
public class Line : DrawingObject
{
public override void Draw()
{
Console.WriteLine(“I’m a Line.”);
}
}
public class Circle : DrawingObject
{
public override void Draw()
{
Console.WriteLine(“I’m a Circle.”);
}
}
public class Square : DrawingObject
{
public override void Draw()
{
Console.WriteLine(“I’m a Square.”);
}
}
public class DrawDemo
{
public static int Main()
{
DrawingObject[] dObj = new DrawingObject[4];
dObj[0] = new Line();
dObj[1] = new Circle();
dObj[2] = new Square();
dObj[3] = new DrawingObject();
foreach (DrawingObject drawObj in dObj)
{
drawObj.Draw();
}
DrawingObject dob = new DrawingObject();
dob.Draw();
DrawingObject p = new Line();
p.Draw();
Line ln = new Line();
((DrawingObject)ln).Draw();
return 0;
}
}
Output:
I’m a Line.
I’m a Circle.
I’m a Square.
I’m just a generic drawing object.
I’m just a generic drawing object.
I’m a Line.
I’m a Line.