CodeBlanks Logo Icon CodeBlanks

interface

implements ile arayüz uygulama öğrenirsin.

implements

Dart'ta her sınıf aynı zamanda bir arayüz (interface) görevi görür. Bir sınıfın tüm üyelerini yeniden uygulamak için implements anahtar kelimesi kullanılır.

Örnek: class Athlete implements Runner { @override void run() { print('Atlet koşuyor'); } }. Burada Athlete, Runner arayüzünü uygular. implements miras vermez; yalnızca sözleşme ister. Runner'ın tüm metot ve alanları Athlete içinde yeniden yazılır. Birden çok arayüz virgülle listelenebilir: implements Runner, Swimmer.

Birden çok arayüz

Dart tekli miras alır; extends yalnızca bir sınıfla yapılır. Buna karşılık implements virgülle ayırarak birden çok arayüzü aynı anda uygulayabilir.

Örnek: class Triathlete implements Runner, Swimmer, Cyclist { ... }. Üç arayüzün de tüm metotları Triathlete içinde yeniden yazılır. Bu yapı, çoklu kalıtım istendiğinde Dart'ın önerdiği yoldur. extends ile birlikte de kullanılabilir: class Triathlete extends Person implements Runner, Swimmer. Sıra önemlidir: önce extends, sonra implements.

Uygulama Athlete sınıfını implements ile yaz

Var olan Runner sınıfını koru. Athlete adında, Runner arayüzünü uygulayan bir sınıf tanımla; @override void run() { print('Atlet koşuyor'); } metodunu ekle. main içinde var a = Athlete(); ile örnek oluştur ve a.run() çağrısı yap.

Başlangıç kodu

main.dart
class Runner {
  void run() {
    print('Koşuyor');
  }
}

// Athlete sınıfını Runner arayüzünü uygulayacak biçimde tanımla

void main() {
  // Athlete() örneği oluştur ve run() çağır
}

Örnek çözüm

main.dart
class Runner {
  void run() {
    print('Koşuyor');
  }
}

class Athlete implements Runner {
  @override
  void run() {
    print('Atlet koşuyor');
  }
}

void main() {
  var a = Athlete();
  a.run();
}

Beklenen çıktı

Atlet koşuyor

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 implements anahtarını ekle

Soru
class Athlete ____ Runner {
  @override
  void run() {
    print('Atlet koşuyor');
  }
}
Cevap
class Athlete implements Runner {
  @override
  void run() {
    print('Atlet koşuyor');
  }
}

Açıklama: implements, bir sınıfı arayüz olarak uygulamak için kullanılır.

2 extends ve implements arasındaki fark nedir?

  • extends kodu kopyalar, implements paylaşır
  • İkisi tamamen aynıdır
  • extends miras alır ve üyeleri paylaşır; implements yalnızca sözleşme ister ve üyeleri yeniden yazma gerektirir Doğru cevap
  • implements yalnızca abstract sınıflarda kullanılır

Açıklama: extends paylaşır, implements yeniden yazmayı zorunlu kılar.

3 interface parçalarını eşle

Kavram Anlamı
implements Anahtar kelime
Runner Arayüz
Athlete Uygulayan sınıf

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