Dart Dilinde Metot Ezme (Method Overriding)
Dart dilinde metot ezme olarak adlandırabileceğimiz method overriding ile alt sınıf nesnelerinin aynı metoda farklı yanıt vermesi sağlanır.
Dart Dilinde Metot Ezme
Miras alma ile üst sınıfta belirtilen özellikler pekala alt sınıflarda da kullanılabilmektedir. Ancak üst sınıfta yazılan metotları değiştirmek istediğimizde method overriding olarak adlandırılan (metot ezme) bir yöntem kullanılır.
Method overriding ile alt sınıf, üst sınıftan aldığı metodu birebir kullanmak yerine kendi kendi uygulamasını baskılar. Bu durum, üst sınıfta tanımlanan metodu geçersiz kılma yöntemi olarak bilinir ve alt sınıftaki yöntem, method overriding olarak adlandırılır.
class UstSinif
{
//Overridden method - Ezilen metot
void goster()
{
print("Ana sınıfın metodu çalıştı.");
}
}
class AltSinif extends UstSinif
{
//Overriding method - Ezen sınıf
void goster()
{
print("Alt sınıfın metodu üst sınıfı ezdi.");
}
}
void main(){
UstSinif ustNesne = UstSinif();
AltSinif altNesne = AltSinif();
ustNesne.goster();
altNesne.goster();
}
Çıktı:
Ana sınıfın metodu çalıştı.
Alt sınıfın metodu üst sınıfı ezdi.
Kodu çalıştırmak için: DartPad
Metot Ezme Avantajları
Metot ezmenin (method overriding) ana avantajı, alt sınıflarımızı ihtiyaçlarımıza göre şekillendirebilmemizi sağlayabilmesidir. Metot ezme yaparken aşağıda listelenmiş kurallara riayet etmeliyiz:
- Bir metot sadece Alt Sınıfta ezilebilir.
- Argüman listesi, geçersiz kılınan metodunkiyle tamamen aynı olmalıdır.
- Dönüş tipi, üst sınıftaki metotla bildirilenle aynı olmalıdır.
- Final olarak bildirilen bir metot geçersiz kılınamaz.
- Statik olarak bildirilen bir yöntem geçersiz kılınamaz.
- Bir metot miras alınamazsa, geçersiz kılınamaz.
- Yapıcı/kurucu (constructor) metotlar geçersiz kılınamaz.