Konu Anlatımı
Çok Biçimlilik ve Arayüzler
Çok Biçimlilik ve Arayüzler, Nesne Tabanlı Programlama dersi kapsamındaki Kalıtım ve Çok Biçimlilik ünitesinin temel konularından biridir. Bu konu alanın gerektirdiği bilgi ve becerilerin kazandırılmasına temel oluşturur.
Temel Bilgiler
- Kalıtım kod tekrarını önler,: işareti ile belirtilir.
- override ve virtual çok biçimliliği sağlar.
- Bir sınıf birden fazla arayüz uygulayabilir.
Uygulama ve Dikkat Edilmesi Gerekenler
Bu konunun uygulamasında iş güvenliği kurallarına uyulmalı, kullanılan araç ve malzemeler amacına uygun seçilmeli ve yapılan işlemler standartlara göre kontrol edilmelidir. Öğrenilen bilgiler atölye ve iş yeri uygulamalarıyla pekiştirildiğinde kalıcılık artar.
Çok Biçimliliğin Çalışma Prensibi
Çok biçimlilik, aynı isimdeki bir metot çağrısının hangi gövdeyi çalıştıracağını nesnenin gerçek türünün belirlemesidir. Üst sınıf türünden referansla tutulan bir OdemeYap çağrısı, nesne KrediKarti ise komisyon hesabıyla, Havale ise havale ücretiyle çalışır. Kod yazan kişi üst sınıfın sözleşmesine güvenir, yöntemi ise nesne seçer. Bu ayrım, ödeme sistemine yeni yöntem eklendiğinde çağrı noktasının hiç değişmemesini sağlar; ana programdaki kod aynı kalır, yalnızca davranışı uygulayan yeni sınıf eklenir.
virtual, override ve Gizleme Arasındaki Fark
Üst sınıfta virtual ile işaretlenen metot alt sınıfta override ile yeniden tanımlanır; bu durumda seçim çalışma zamanında yapılır ve nesnenin gerçek türüne göre doğru sürüm çalışır. Aynı imzalı metot anahtar kelimesiz ya da new ile tanımlanırsa üst sınıfınki yalnızca gizlenir; üst sınıftan referansla yapılan çağrı yanlış sürümü çalıştırır. Sınavda en çok bu ikisi karıştırılır: ezmede tek bir metot vardır ve sürüm seçimi nesneye bağlıdır, gizlemede iki ayrı metot vardır ve seçim referansın türüne bağlıdır.
Arayüz Kullanımı
Arayüz, bir sınıfın uygulamak zorunda olduğu metotların yalnızca imzasını listeleyen bir sözleşmedir. Bir sınıf birden çok arayüzü aynı anda uygulayabilir; bu sayede ortak davranış, kalıtım hiyerarşisinden bağımsız olarak tanımlanır. Arayüz metotları gövdesizdir ve sınıfta aynı imzayla uygulanmalıdır. Arayüz ile soyut sınıfın farkı sık sorulur: soyut sınıf hem ortak veriyi hem davranışı taşır, arayüz ise yalnızca yapılacak işleri bildirir ve veri alanı içermez.
Uygulama ve Test Notları
Bir raporlama uygulamasında IRaporla arayüzünü PdfRapor ve ExcelRapor sınıfları uygular; ana program hangi nesneyi verirse o biçimi üretir. Yeni biçim eklendiğinde yalnızca arayüzü uygulayan yeni sınıf yazılır, mevcut kod aynen kalır. Sınavda çoğunlukla kısa kod parçaları verilip hangi sürümün çalıştığı, hangi ifadenin derlenemeyeceği veya arayüzü uygulayan sınıfın hangi metotları yazmak zorunda olduğu sorulur. Atölyede arayüz adlarının başına I harfi konması ve metot imzalarının tasarım dokümanıyla birebir örtüşmesi beklenir.
Virtual Metotların Çalışma Prensibi
Virtual metotlar, kalıtım ile sağlanan çok biçimlilikte en kritik unsurlardan biridir. Bu metotlar, üst sınıfta tanımlanan ve alt sınıflarda yeniden tanımlanabilecek şekilde çalışırlar. Virtual metotlar, çalışma zamanında nesnenin gerçek türünü belirleyerek doğru sürümü çalıştırır. Bu özellik, sistemlerin genişletilmesini ve yeni davranışların eklenmesini sağlamada büyük bir avantaj sağlar. Örneğin, bir ödeme sistemi için kredi kartı ve havale işlemleri farklı sınıflarda tanımlanırken, virtual metotlar aracılığıyla aynı çağrı noktasında farklı davranışlar uygulanabilir. Bu nedenle, virtual metotların doğru kullanımı, programın kalıcılığını ve esnekliğini korumada temel bir rol oynar.
Virtual metotların kullanımı, programcıların üst sınıfların sözleşmesine güvenmesini ve alt sınıfların davranışlarını özgürce şekillendirmesini sağlar. Bu metotlar, özellikle dinamik davranışlar ve genişletilebilir sistemlerde kritik öneme sahiptir. Ayrıca, virtual metotlar ile sağlanan çok biçimlilik, programın farklı türlerde nesnelerle çalışmasını kolaylaştırır. Bu nedenle, programcılar virtual metotları doğru şekilde kullanırken, özellikle çalışma zamanında seçim yapma konusunda dikkatli olmalıdır.
Ne Öğreneceğiz
Nesne Tabanlı Programlama dersi kapsamında Çok Biçimlilik ve Arayüzler konusu. Bu konuda ögrenme çıktıları:
- Çok Biçimlilik ve Arayüzler ile ilgili temel kavramları açıklar.
- Çok Biçimlilik ve Arayüzler konusunun Nesne Tabanlı Programlama dersi içindeki yerini ve önemini belirtir.
- Konuyla ilgili araç, gereç ve malzemeleri amacına uygun seçer.
- İş sağlığı ve güvenliği kurallarına uygun çalışır.
- Öğrendiği bilgi ve becerileri atölye/iş yeri uygulamalarında kullanır.
Ön Bilgi
Bu konuya başlamadan önce temel kavram ve ön koşulları kavramanız yardımcı olacaktır. Konunun çerçevesinde şu kavramlar dikkat ister:
- Kalıtım kod tekrarını önler,: işareti ile belirtilir.
- override ve virtual çok biçimliliği sağlar.
- Bir sınıf birden fazla arayüz uygulayabilir.
- Bir sınıf birden çok arayüzü aynı anda uygulayabilir ama yalnızca bir sınıftan türeyebilir.
- Arayüz metotları gövdesizdir; uygulayan sınıf her metodu tanımlamazsa program derlenmez.
Basit Örnek ve Günlük Yaşam
Günlük yaşamda ve mesleki bağlamda bir uygulama:
Soru: Kalıtım kod tekrarını önler,: işareti ile belirtilir.
- Konuyu tanımla ve ilgili kavramları belirle.
- Doğru yöntem veya hesaplamayı uygula.
- Sonucu standartlara göre kontrol et.
Sonuç/cevap: Doğru uygulama sonucunda konuyla ilgili kazanım elde edilir.
İleri Örnek
Daha ileri bir uygulama:
Soru: UstSinif türünden referans, AltSinif nesnesini gösteriyor. AltSinif, üst sınıftaki Yaz metodunu override etmek yerine anahtar kelimesiz yeniden tanımlıyor. Referans üzerinden Yaz çağrıldığında hangi gövde çalışır?
- Adım 1: Gizlemede üst ve alt sınıfta iki ayrı metot bulunur.
- Adım 2: Seçim referansın türüne göre yapılır; referans UstSinif türündendir.
- Adım 3: Bu yüzden üst sınıfın gövdesi çalışır, alt sınıfınki çalışmaz.
Sonuç/cevap: Cevap: Üst sınıfın gövdesi çalışır; beklenen davranış için metot override edilmeliydi.
Adım Adım Çözülmüş Örnek
Çok Biçimlilik ve Arayüzler - Örnek 1 konusunun adımları:
- Konuyu tanımla ve ilgili kavramları belirle.
- Doğru yöntem veya hesaplamayı uygula.
- Sonucu standartlara göre kontrol et.
Karşılaştırma Tablosu
| Kavram | Açıklama |
|---|
| Kalıtım kod tekrarını önler,: işareti i | Kalıtım kod tekrarını önler,: işareti ile belirtilir. |
| override ve virtual çok biçimliliği sağl | override ve virtual çok biçimliliği sağlar. |
| Bir sınıf birden fazla arayüz uygulayabi | Bir sınıf birden fazla arayüz uygulayabilir. |
| Bir sınıf birden çok arayüzü aynı anda u | Bir sınıf birden çok arayüzü aynı anda uygulayabilir ama yalnızca bir sınıftan türeyebilir. |
| Arayüz metotları gövdesizdir; uygulayan | Arayüz metotları gövdesizdir; uygulayan sınıf her metodu tanımlamazsa program derlenmez. |
Sık Yapılan Hatalar
Çok Biçimlilik ve Arayüzler ile ilgili kavramları birbirine karıştırmak: Temel kavramları tablo veya zihin haritasıyla ayırt et.
Uygulamada standartlara ve iş güvenliği kurallarına uymamak: Her adımda güvenlik ve kalite kurallarını uygula.
Kullanılan araç-gereci amacına uygun seçmemek ve bakımını ihmal etmek: Doğru ekipmanı seç, kullanım öncesi ve sonrası kontrol et.
Gizlemeyi ezmekle karıştırmak: Anahtar kelimesiz tanımlama üst sınıfın metodunu gizler; üst sınıftan referansla çağrıda beklenmeyen sürüm çalışır.
Özet
Çok Biçimlilik ve Arayüzler, Nesne Tabanlı Programlama dersi kapsamında ele alınan temel konulardan biridir. Kalıtım kod tekrarını önler,: işareti ile belirtilir. override ve virtual çok biçimliliği sağlar. Bir sınıf birden fazla arayüz uygulayabilir. Bu bilgiler uygulama ve iş güvenliği kurallarıyla birlikte pekiştirilmelidir.
Kendini Dene
Soru: Bir arayüz tanımla ve bu arayüzü farklı biçimlerde uygulayan iki sınıf yaz. Ardından Base referansıyla alt sınıf nesnesi oluşturarak hangi sürümün çalıştığını açıkla; virtual + override ile anahtar kelimesiz tanımlamanın (gizleme) farkını tablo hâlinde göster.
Örnek cevap: Puanlama anahtarı: Arayüzde gövdesiz en az iki metot bildirilir, sınıflar bu metotları uygular (5 puan); Base referansıyla yapılan çağrıda override edilen alt sınıf sürümünün çalıştığı belirtilir (4 puan); virtual + override (ezme) ile anahtar kelimesiz tanımlamanın (gizleme) farkı tabloda doğru gösterilir (4 puan); Sonuç iki cümleyle yorumlanır (2 puan).