Önceki yazımda (bkz: C# Virtual Metod Nedir ve Nasıl Kullanılır?) her ne kadar override sözcüğünün kullanımını sanal metod (virtual metod) konusunda göstermiş olsam da override sözcüğü, tüm programlama dillerinde kullanılan bir terim olduğu için ayrı bir başlık altında tekrar açıklamak istedim.
Override anahtar kelimesi, base metodu değiştirmek anlamına gelir. C# programlama dilinde, bir metodun override edilebilmesi için snal metod (virtual metod) olması gerekir. Olmadığı durumda ise aşağıdaki gibi bir hata alınacaktır.
class Araba
{
...
public void Calistir () {
}
...
}
class Suv : Araba
{
...
public override void Calistir () {
}
}
Hata mesajı:
'Suv.Calistir()': cannot override inherited member 'Araba.Calistir()' because it is not marked virtual, abstract, or override [csharp]csharp(CS0506)
Sadece virtual metodlar override edilebilir, bunun için kendi yazdığımız sınıflarda override edilebilmesini istediğimiz sınıfları virtual metod olarak güncellebiliriz.
class Araba
{
...
public virtual void Calistir () {
}
...
}
class Suv : Araba
{
...
public override void Calistir () {
}
}
Not: override edilmiş metodlarda baz metodun özelliklerinin kullanılması istenirse base anahtar sözcüğü kullanılabilir.
public override void Calistir () {
base.Calistir();
...
}
Önceki bazı diğer benzer yazılarım için;
bkz: C# ile Kalıtım Örneği (OOP)
bkz: Programlama Dillerinde Kalıtım Nedir?
bkz: C# ile ArrayList'ten en küçük sayıyı bulmak
bkz: C# List'ten eleman silmek
bkz: C# ArrayList elemanlarını tarihe göre sıralamak
bkz: C# Sınıf ve Nesne Nedir?