1. |
OOP programlamada Inheritance kullanirken Base Classimizin Virtual fonksiyonlarini yeniden yazmak veya fonksiyonun yapacagi islemlere yeni bir islem eklemek amaciyla kullandigimiz keyworddur. Base Class icindeki fonksiyonu override edebilmemiz icin fonksiyonun Virtual olarak tanimlanmis olmasi gereklidir.
public class AracBase{
public X = 0; // aracin konumu
protected virtual int IleriGit(){
X += 2;
return X;
}
}
AracBase class'i 0 konumundan basliyor ve IleriGit() fonksiyonu her cagirildigida 2 birim ileri gidiyor. AracBase class'indan yeni bir class turettigimizde bu sinifta ayni sekilde 2 birim ileri gidicek. Bunu degistirmek, yeni aracimiza gore uyarlamak icin yeni class'imiz icinde IleriGit() fonksiyonunu override ederek yeniden yazmaliyiz.
public class Otomobil: AracBase{
public override int IleriGit(){
X += 5; //Otomobil 5 birim ileri gidiyor.
return X;
}
}
Ornekte Otmobil class'i olusturuldu ve IleriGit() fonksiyonu yeniden yazildi. Artik AracBase Class'imiz 2 birim ileri giderken Otomobil class'imiz 5 birim ileri gidiyor.
Ayrica yeni IleriGit() fonksiyonumuzun icinde Base Class (AracBase) class'i icindeki IleriGit fonksiyonunu calistirmak istersek
base.IleriGit();
komutunu kullanabiliriz.
|
2. |
override baskın gelmek,üstün gelmek anlamına gelir.. kimlikleri korunabilen iki ayrı öğenin biri diğerine baskın gelmesi ile ifade edilebilir. çoğu zaman overwrite ile karıştılan kelime..
|
3. |
java'da herhangi bir keyword kullanmadan kullanılabilen özellik. eğer yazdığınız metod base class içinde mevcut ise direk override işlemi yapılır.
ayrıca değişken olarak tanımlanmış bir class'ın metodlarını inheritance kullanmadan override etmek istiyorsanız aşağıdaki kod örneğinden yardım alabilirsiniz
ButtonField btn = new ButtonField("Buton Başlığı"){
public void BaseFonksiyonAdi(){
// Fonksiyonun yeni kodları buraya
// Base fonksiyon çalıştırılması gerekiyorsa super.BaseFonksiyonAdi(); kulanilabilir.
}
};
|
4. |
C#'da abstract metodlar da override edilerek implement edilirler. Ama interface'lerden gelen metodlar için override kullanılmaz.
|