Dart
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.
Örnek çözümü göster
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();
}
Kendini test et
-
implements anahtarını ekle
class Athlete ____ Runner {
@override
void run() {
print('Atlet koşuyor');
}
}
Cevabı göster
class Athlete implements Runner {
@override
void run() {
print('Atlet koşuyor');
}
}
-
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
- implements yalnızca abstract sınıflarda kullanılır
Cevabı göster
extends miras alır ve üyeleri paylaşır; implements yalnızca sözleşme ister ve üyeleri yeniden yazma gerektirir — extends paylaşır, implements yeniden yazmayı zorunlu kılar.
-
interface parçalarını eşle
- implements
- Anahtar kelime
- Runner
- Arayüz
- Athlete
- Uygulayan sınıf
Sıradaki ders: Özet - Kalıtım