CodeBlanks Logo Icon CodeBlanks

OOP modeli

Sınıf hiyerarşisi ve interface'leri kurarsın.

OOP modeli

Task sınıfına bir arayüz ekleyeceğiz. Dart'ta abstract class bir arayüz tanımlar; implements ile uygulanır.

abstract class Trackable { bool get isDone; } soyut bir getter tanımlar. Task implements Trackable ile uygularsın.

Uygulamada @override bool get isDone => done; eklersin. Bu, OOP hiyerarşisini ve çok biçimliliği (polymorphism) gösterir.

@override ile uygulama

Task sınıfı artık implements Trackable der; @override bool get isDone => done; ile soyut getter'ı uygular.

@override ek açıklaması (annotation), derleyiciye bir üst sınıfın/arayüzün üyesini geçersiz kıldığını belirtir. Bu, yazım hatasını derleme hatasına çevirir.

Böylece her Task artık bir Trackable'dır; Trackable bekleyen kod Task alabilir (çok biçimlilik).

Uygulama Trackable arayüzü ve Task

abstract class Trackable { bool get isDone; } tanımla. Task sınıfını implements Trackable yap ve @override bool get isDone => done; ekle. main içinde var t = Task('Test yaz', done: true); oluştur ve print(t.isDone) yazdır.

Başlangıç kodu

main.dart
// Trackable arayüzünü tanımla

class Task {
  final String title;
  bool done;
  Task(this.title, {this.done = false});
}

void main() {
  // Task örneği oluştur ve isDone yazdır
}

Örnek çözüm

main.dart
abstract class Trackable {
  bool get isDone;
}

class Task implements Trackable {
  final String title;
  bool done;
  Task(this.title, {this.done = false});

  @override
  bool get isDone => done;
}

void main() {
  var t = Task('Test yaz', done: true);
  print(t.isDone);
}

Beklenen çıktı

true

Soru ve cevaplar

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

1 Trackable arayüzü

Soru
abstract class Trackable { bool get ____; }
Cevap
abstract class Trackable { bool get isDone; }

Açıklama: soyut getter isDone tanımlanır.

2 Task, Trackable'ı nasıl uygular?

  • Task(Trackable)
  • Task extends Trackable
  • Task with Trackable
  • Task implements Trackable Doğru cevap

Açıklama: implements Dart'ta arayüz uygulama anahtarıdır.

3 OOP modeli parçaları

Kavram Anlamı
abstract class Arayüz
implements Uygulama
@override Geçersiz kılma
get isDone Getter

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