Method Overriding
İşte C# ile Method Overriding konseptini gösteren bir örnek:
using System;
// Üst sınıf (Base class)
public class Hayvan
{
public virtual void SesCikar()
{
Console.WriteLine("Bir hayvan sesi");
}
}
// Alt sınıf (Derived class)
public class Kedi : Hayvan
{
// Aynı isimli metodu üst sınıftan miras alıyoruz ve yeniden tanımlıyoruz.
public override void SesCikar()
{
Console.WriteLine("Miyav");
}
}
public class Kopek : Hayvan
{
// Bu sınıf için de aynı metodu üst sınıftan miras alıyoruz ve yeniden tanımlıyoruz.
public override void SesCikar()
{
Console.WriteLine("Hav hav");
}
}
public class Program
{
public static void Main(string[] args)
{
Hayvan kedi = new Kedi();
kedi.SesCikar(); // Miyav
Hayvan kopek = new Kopek();
kopek.SesCikar(); // Hav hav
}
}
Bu C# örneğinde de, 'Hayvan' sınıfında bir 'SesCikar' metodu tanımlanmıştır. Bu metot virtual anahtar kelimesiyle tanımlanmıştır ki alt sınıflar bu metodu override edebilsin. Kedi ve Kopek sınıfları, Hayvan sınıfından miras almaktadır ve her ikisi de SesCikar metodunu kendi özelliklerine uygun olarak yeniden tanımlamıştır. Bu, method overriding'in klasik bir örneğidir.