OOP modeli
- Dart kursu
- Orta seviye
- Ders 113/116
- 6 dk
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
// 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
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ü
abstract class Trackable { bool get ____; }
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 |