Java
Çoklu interface
Birden çok interface uygulamayı öğrenirsin.
Birden fazla interface uygulama
Bir sınıf birden fazla interface uygulayabilir. Interface adları virgülle ayrılır. Sınıf, tüm interface'lerin tüm metotlarını yazmak zorundadır.
Örnek: class Document implements Printable, Savable { ... }. Burada Document hem Printable hem Savable sözleşmelerini uygular. İki interface'in de metotlarını yazmak zorundadır. Java, sınıfların tek sınıftan miras almasına izin verir; ama birden çok interface uygulayabilir. Bu, çoklu kalıtım ihtiyacını güvenli biçimde karşılar. Çakışma olmadığı sürece sınıf istediği kadar interface uygulayabilir. Esnek tasarımın anahtarıdır.
Çoklu interface avantajı
Çoklu interface uygulama, bir sınıfın farklı roller üstlenmesini sağlar. Aynı nesne farklı bağlamlarda farklı sözleşmeler olarak kullanılabilir. Bu, kodun yeniden kullanılmasını artırır.
Örnek: Document hem Printable hem Savable ise, bir printAll(Printable[] items) metoduna da bir saveAll(Savable[] items) metoduna da verilebilir. Tek sınıf, iki farklı iş akışında rol alır. Bu, sınıf hiyerarşisini esnek tutar. Her rol bir interface ile temsil edilir; sınıf rolleri birleştirir. Bu yaklaşım, büyük sistemlerin temiz kalmasına yardımcı olur. İhtiyaç oldukça yeni roller eklenir.
Uygulama Document sınıfına iki interface uygula
Printable adında bir interface tanımla; içine void print() imzasını ekle. Savable adında ikinci bir interface tanımla; içine void save() imzasını ekle. Sonra class Document implements Printable, Savable yaz; her iki metodu public void olarak gövdesiyle yaz. print gövdesi System.out.println("Yazdırılıyor");, save gövdesi System.out.println("Kaydediliyor"); yazsın. main içinde Document d = new Document(); ile d.print() ve d.save() çağır.
Örnek çözümü göster
interface Printable {
void print();
}
interface Savable {
void save();
}
class Document implements Printable, Savable {
public void print() {
System.out.println("Yazdırılıyor");
}
public void save() {
System.out.println("Kaydediliyor");
}
}
class Main {
public static void main(String[] args) {
Document d = new Document();
d.print();
d.save();
}
}
Kendini test et
-
Birden fazla interface adı nasıl ayrılır?
- Virgül ile
- Nokta ile
- Artı ile
- Ve ile
Cevabı göster
Virgül ile — interface adları virgülle ayrılır.
-
Çoklu interface rollerini eşle
- Printable
- Yazdırma rolü
- Savable
- Kaydetme rolü
- Document
- Rolleri birleştiren sınıf
- implements
- Uygulama kelimesi
-
Çoklu implements satırını tamamla
class Document implements Printable, ____ {
public void print() { }
public void save() { }
}
Cevabı göster
class Document implements Printable, Savable {
public void print() { }
public void save() { }
}
Sıradaki ders: Özet - Interface