Dart

Dart Dilinde Interface Kavramı (implements)

Aslında Dart’ta diğer programlama dillerinde olduğu gibi interface (arayüz) diye bir kavram yok. Ancak Dart dilinde interface kavramı yerine implements anahtar kelimesi kullanarak ilgili sınıfları birer interface sınıfa dönüştürebiliyoruz.

Dart Dilinde Interface Kavramı

Malumunuz Dart dilinde her sınıf ancak tek bir sınıftan türetilebilir (miras alabilir). Bu yüzden bir sınıf, birden fazla sınıftan miras alamamaktadır. İşte ınterface ile bu durum tabiri caizse aşılmaktadır.

Dart dilinde interface kavramı yoktur dedik fakat bir sınıf, birden fazla sınıfı implements anahtar kelimesi ile miras alabilir ve bu sayede çoklu kalıtım sağlanabilir.

Ayrıca belirtmek gerekir ki bir sınıf birden fazla sınıftan implemente edilebilirken buna karşılık sadece tek bir sınıftan extends edilebilir.

Böylece ortak özelliği olan ancak kalıtımsal olarak alakalı olmayan sınıfları bir çatı altında toplayabiliriz. Ancak belirtmek gerekir ki interface olarak kullanılan sınıfların metotları bu sınıfları implemente eden sınıflar tarafından yazılmak zorundadır. Bu yönüyle soyut sınıflarla (abstract classes) benzerlik göstermektedir. Fakat soyut sınıflardan farklı olarak implements edilen sınıfların sadece soyut metotları değil somut metotları da yazılmak zorundadır.

Tekrarlamakta fayda var. Her ne kadar Dart çoklu kalıtımı desteklemese de, bir sınıf çoklu kalıtım elde etmek için implements’i bir mekanizma olarak kullanılabilir.

Aşağıdaki örnek kodlama umuyoruz ki anlaşılır olmuştur:

Çıktı:

Penguen etçil bir canlıdır.
Penguen koşabilir.
Penguen yüzebilen bir canlıdır.
Aslan etçil bir canlıdır.
Aslan koşabilen bir canlıdır.
Leylek etçil bir canlıdır.
Leylek uçabilen bir canlıdır.
Gövdesi olan metotlar somut metotlardır.
Hayvan sınıfı sadece Leylek sınıfının üst sınıfıdır.

Kodu çalıştırmak için: DartPad

İlgili Makaleler

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Başa dön tuşu

😔 Reklam Engelleyicisi 😔

Sitenin varlığını sürdürebilmesi adına reklam engelleyicinizi (Adblocker) kapatmanızı rica ediyoruz 😔