# Sınıfı Uzatma (Extending a Class)

Bir sınıftan türemek için `extends` kelimesi kullanılır. Ayrıca `super` anahtar kelimesi, türetilen sınıfta, üst sınıfın metotlarına referans için kullanılır. İşte bir örnek:

```dart
class Televizyon {
  void ac() {
    _ekraniAydinlat();
    _irSensorunuAktiveEt();
  }
  // ···
}

class AkilliTelevizyon extends Televizyon {
  void ac() {
    super.ac();
    _agArayuzunuBaslat();
    _bellegiBaslat();
    _uygulamalariGuncelle();
  }
  // ···
}
```

## **Üyeleri Geçersiz Kılma (Overriding Members)**

Alt sınıflar, üst sınıflarındaki metotları, getter'ları ve setter'ları geçersiz kılabilirler. Bu, alt sınıflarda özel davranış eklemek veya üst sınıftaki davranışı değiştirmek için kullanışlıdır. `@override` açıklaması, bir üyenin bilinçli olarak geçersiz kılındığını belirtmek için kullanılır. Örnek:

```dart
class Televizyon {
  // ···
  set parlaklik(int deger) {...}
}

class AkilliTelevizyon extends Televizyon {
  @override
  set parlaklik(num deger) {...}
  // ···
}
```

Bu örnekte, `AkilliTelevizyon` sınıfı, `Televizyon` sınıfındaki `parlaklik` setter'ını geçersiz kılar ve parametre türünü genişletir.

## **NoSuchMethod() Metodu**

Dart dilinde, olmayan bir metodu kullanmaya çalıştığınızda `NoSuchMethodError` hatası alırsınız. Ancak, bu hatayı özelleştirmek için `noSuchMethod()` metodunu geçersiz kılabilirsiniz:

```dart
class A {
  @override
  void noSuchMethod(Invocation davet) {
    print('Var olmayan bir üyeyi kullanmaya çalıştınız: '
        '${davet.memberName}');
  }
}
```

Bu sayede, olmayan bir üye kullanılmaya çalışıldığında özel bir mesaj görüntülenebilir.

Dart dilinde sınıfları genişletme ve üyeleri geçersiz kılma, kodunuzu daha modüler hale getirmenize ve tekrar kullanılabilirlik sağlamanıza yardımcı olabilir.
