interface
- Dart kursu
- Orta seviye
- Ders 11/116
- 5 dk
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
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
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
class Athlete ____ Runner {
@override
void run() {
print('Atlet koşuyor');
}
}
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 |