This is a example for reference. This is so that i can just link to it as a reply to similar questions. Feel free to expand on it as you like.
This is a basic console example.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace InheiritanceAndBaseDerivation
{
class Program
{
static void Main(string[] args)
{
AnimalLover me = new AnimalLover();
me.Draw();
Console.ReadLine();
}
}
public class Animal
{
public string objectTypesName = "Animal";
public string noise = "...";
public virtual string Speak
{
get { return noise; }
set { noise = value; }
}
public virtual void Update()
{
}
public virtual void Draw()
{
Console.WriteLine(objectTypesName + " " + Speak);
}
}
public class Cat : Animal
{
public Cat()
{
objectTypesName = "Cat";
Speak = "Meow";
}
}
public class Dog : Animal
{
public Dog()
{
objectTypesName = "Dog";
Speak = "Ruff";
}
public override void Draw()
{
// because dogs like to speak alot
Console.WriteLine(objectTypesName + " " + Speak + " " + Speak);
}
}
public class Lizard : Animal
{
public Lizard()
{
objectTypesName = "Lizard";
}
}
public class AnimalLover
{
List<Animal> animals = new List<Animal>();
public AnimalLover()
{
animals.Add(new Animal());
animals.Add(new Cat());
animals.Add(new Dog());
animals.Add(new Lizard());
}
public void Update()
{
}
public void Draw()
{
foreach (Animal item in animals)
{
item.Draw();
}
}
}
// Output as follows
//
// Animal ...
// Cat Meow
// Dog Ruff Ruff
// Lizard ...
//
}