@override
- Dart kursu
- Orta seviye
- Ders 78/116
- 5 dk
@override annotation'ını öğrenirsin.
@override derinlemesine
@override bir alt sınıf metodunun üst sınıf metodunu yeniden tanımladığını belirtir. Örneğin class Cat extends Animal içinde String toString() metoduna @override eklersin.
Bu annotation bir zorunluluk değildir ama Dart önerir. Yanlış bir imza yazarsan derleyici @override sayesinde uyarı verir; çünkü üst sınıfta eşleşen metod yoksa uyarı oluşur.
toString, hashCode ve noSuchMethod gibi Object metodlarını geçersiz kılmak için yaygın kullanılır.
Uygulama Cat ve @override
Bir Animal sınıfı tanımla: String name alanı ve Animal(this.name) constructor'ı. Bir Cat extends Animal alt sınıfı yaz: Cat(String name) : super(name) constructor'ı olsun. @override ile String toString() => 'Kedi $name' metodunu ekle. main içinde Cat('Mavi') örneğini print ile yazdır.
Başlangıç kodu
// Animal sınıfını tanımla (name, constructor)
// Cat alt sınıfını tanımla, toString'i yeniden tanımla
void main() {
// bir Cat oluştur ve yazdır
}Örnek çözüm
class Animal {
String name;
Animal(this.name);
}
class Cat extends Animal {
Cat(String name) : super(name);
@override
String toString() => 'Kedi $name';
}
void main() {
print(Cat('Mavi'));
}Beklenen çıktı
Kedi Mavi
Analiz ve @override
Dart analizi @override yazdığında üst sınıfta eşleşen bir metod arar. Bulamazsa uyarı verir. Bu, yazım hatasıyla yanlışlıkla yeni bir metod oluşturmanı engeller.
Örneğin toStrring yazarsan, @override olmadan bu yeni bir metod olur; @override ile analiz bunu yakalar.
İyi bir alışkanlık: üst sınıf metodunu yeniden tanımladığında her zaman @override yaz. IDE'ler bunu otomatik ekler.
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 @override etiketi
class Cat extends Animal {
@____
String toString() => 'Kedi';
}
class Cat extends Animal {
@override
String toString() => 'Kedi';
}
Açıklama: Geçersiz kılmayı belirten kelime override.
2 @override ne zaman yazılır?
- Yeni bir metod eklenince
- Bir alan silince
- Üst sınıf metodu yeniden tanımlanınca Doğru cevap
- Bir döngü kurulunca
Açıklama: @override üst sınıf metodu yeniden tanımlanınca yazılır.
3 @override yazmazsan ne olur?
- Derleyici her zaman hata verir
- Program derlenmez
- Metod çalışmaz
- Yanlış imzada uyarı kaçar Doğru cevap
Açıklama: @override yanlış imzayı yakalar, yoksa uyarı kaçar.