CodeBlanks Logo Icon CodeBlanks

@override

@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

main.dart
// 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

main.dart
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

Soru
class Cat extends Animal {
  @____
  String toString() => 'Kedi';
}
Cevap
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.

Orta seviye bölümündeki tüm dersler