Hi,
sorry, aber das ist Unsinn. Vielleicht verwechselst du das mit sealed,protected oder internal-Methoden.
Kompiliere das Ganze mal und du wirst feststellen, dass virtuelle Methoden in erster Linie dazu da sind damit die Methoden der abgeleiteten Klasse Vorrang vor der gleichen Methode der Basisklasse hat.
Gruss
Joey
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace test
{
class tier
{
public virtual string getAnimal()
{
return "Ich bin ein Tier";
}
}
class Hund:tier
{
public override string getAnimal()
{
return "Ich bin ein Hund";
}
}
class Terrier: Hund
{
public override string getAnimal()
{
return "Ich bin ein Terrier";
}
}
class Program
{
static void Main(string[] args)
{
tier dasTier = new tier();
Console.WriteLine( dasTier.getAnimal());
Hund derHund = new Hund();
Console.WriteLine(derHund.getAnimal());
Terrier derTerrier = new Terrier();
Console.WriteLine(derTerrier.getAnimal());
tier dasHundTier = new Hund();
Console.WriteLine(dasHundTier.getAnimal());
tier dasTerrierTier = new Terrier();
Console.WriteLine(dasTerrierTier.getAnimal());
Hund derTerrierHund = new Terrier();
Console.WriteLine(derTerrierHund.getAnimal());
Console.ReadLine();
}
}
}