Archive

Posts Tagged ‘OOPS’

Learn Inheritance and Polymorphism in one shot.

August 19, 2009 Leave a comment

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.

Categories: OOPS Tags: