CSharp · Console
using System;
public class Program
{
// Base Class
class Hero {
public string Weapon { get; set; }
public string Name { get; set; }
public Hero(string name) {
Name = name;
Weapon = "pair of fists";
}
public virtual void Attack() {
Console.WriteLine("Punch Punch!");
}
}
// Derived Classes
class Rogue : Hero {
public Rogue(string name) : base(name) {
Name = name;
Weapon = "dagger";
}
public override void Attack() {
Console.WriteLine("Stab Stab!");
}
}
class Archer : Hero {
public Archer(string name) : base(name) {
Name = name;
Weapon = "bow & arrows";
}
public override void Attack() {
Console.WriteLine("Pew Pew!");
}
}
class Warrior : Hero {
public Warrior(string name) : base(name) {
Name = name;
Weapon = "sword";
}
public override void Attack() {
Console.WriteLine("Slash Slash!");
}
}
public static void Main() {
Hero avatar = new Rogue("Bob");
Console.WriteLine("{0}'s weapon is a {1}.", avatar.Name, avatar.Weapon);
// Bob's weapon is a dagger.
avatar.Attack();
// Stab Stab!
}
}