Miras Java (Örnek ile)
Miras nedir?
miras bir sınıfın başka bir sınıfın özelliğini edindiği bir mekanizmadır. Örneğin bir çocuk ebeveynlerinin özelliklerini miras alır. Kalıtım ile mevcut sınıfın alanlarını ve yöntemlerini yeniden kullanabiliriz. Dolayısıyla kalıtım, Yeniden Kullanılabilirliği kolaylaştırır ve OOP'lerin önemli bir kavramıdır.
Miras Nedir? Java?
Java miras bir sınıfın başka bir sınıfın özelliğini edindiği bir mekanizmadır. İçinde Javaİki sınıf arasında “Is-A” ilişkisi mevcut olduğunda Kalıtım kullanırız. Ana sınıfa süper sınıf, miras alınan sınıfa ise alt sınıf adı verilir. Anahtar kelime extends
alt sınıf tarafından üst sınıfın özelliklerini miras almak için kullanılır. Miras, kodun yeniden kullanılabilirliğine yol açtığı için önemlidir.
Java Kalıtım Sözdizimi:
class subClass extends superClass { //methods and fields }
Miras Türleri Java
İşte farklı miras türleri Java:
- Tek Kalıtım
- Çoklu Kalıtım
- Çok Düzeyli Kalıtım
- Hiyerarşik Kalıtım
- Hibrit Kalıtım
1. Tek Kalıtım:
Tek Kalıtımda bir sınıf başka bir sınıfı genişletir (yalnızca bir sınıf).

Yukarıdaki şemada B Sınıfı yalnızca A Sınıfının kapsamını genişletir. A Sınıfı bir süper sınıftır ve B Sınıfı bir Alt sınıftır.
2. Çoklu Kalıtım:
Çoklu Miras, miras türlerinden biridir. Java Bir sınıfın birden fazla sınıfı genişlettiği türler. Java çoklu kalıtımı desteklemez.

Yukarıdaki diyagrama göre C Sınıfı, A Sınıfı ve B Sınıfının her ikisini de genişletir.
3. Çok Seviyeli Kalıtım:
Çok Düzeyli Kalıtımda, bir sınıf türetilmiş bir sınıftan miras alabilir. Böylece türetilmiş sınıf, yeni sınıfın temel sınıfı haline gelir.

Diyagramda gösterildiği gibi C Sınıfı, B'nin alt sınıfıdır ve B, A Sınıfının bir alt sınıfıdır.
4. Hiyerarşik Kalıtım:
Hiyerarşik Kalıtımda bir sınıf, birçok alt sınıf tarafından miras alınır.

Yukarıdaki örneğe göre, B, C ve D Sınıfı aynı A sınıfını miras alır.
5. Hibrit Kalıtım:
Hibrit miras, miras türlerinden biridir. Java Tekli ve Çoklu kalıtımın birleşimidir.

Yukarıdaki örneğe göre, A Sınıfının tüm genel ve korunan üyeleri, ilk olarak B Sınıfı ve ikinci olarak C Sınıfı yoluyla D Sınıfına miras alınır.
Not: Java hibrit/Çoklu kalıtımı desteklemiyor
Miras Java Örnek E-posta
İşte mirasa bir örnek Java:

class Doctor { void Doctor_Details() { System.out.println("Doctor Details..."); } } class Surgeon extends Doctor { void Surgeon_Details() { System.out.println("Surgen Detail..."); } } public class Hospital { public static void main(String args[]) { Surgeon s = new Surgeon(); s.Doctor_Details(); s.Surgeon_Details(); } }
Süper Anahtar Kelime
Super anahtar sözcüğü "this" anahtar sözcüğüne benzer. Anahtar sözcük super, ebeveyn sınıfının herhangi bir veri üyesine veya yöntemine erişmek için kullanılabilir. Super anahtar sözcüğü şurada kullanılabilir: değişken, yöntem ve yapıcı düzeyi.
Sözdizimi:
super.<method-name>();
Ayrıca Kontrol Edin: - bu Anahtar Kelime Java: Örnek Nedir ve Nasıl Kullanılır?
Örnekle OOP'larda Kalıtımı Öğrenin
Aynı bankacılık uygulamasını düşünün önceki örnek.
Biri tasarruf, diğeri kontrol (vadeli olarak da bilinir) olmak üzere iki farklı hesap türü açmamız gerekiyor.
Karşılaştırma yapıp kodlamaya nasıl yaklaşabileceğimizi inceleyelim. Yapılandırılmış ve nesne yönelimli programlama perspektifi.
Yapısal yaklaşım: Yapısal programlamada iki fonksiyon oluşturacağız –
- Geri çekilecek bir
- Ve diğeri para yatırma işlemi için.
Çünkü bu işlevlerin çalışması hesaplar arasında aynı kalır.
OOP'un yaklaşımı: Kullanırken OOP'ler programlama yaklaşımı. İki sınıf oluşturacağız.
- Her biri para yatırma ve çekme işlevlerini yerine getirir.
- Bu fazladan çalışmayı gereksiz kılacaktır.
Yazılımda Değişiklik Talebi
Artık yazılım endüstrisinde çok yaygın olan bir şeyin gereksinim spesifikasyonunda bir değişiklik var. Kredili Mevduat Tesisi ile ayrıcalıklı Bankacılık Hesabı işlevselliği eklemeniz gerekir. Arka plan olarak, kredili mevduat hesabı, hesabınızdaki mevcut bakiyeden daha fazla bir tutarı çekebileceğiniz bir tesistir.
Yapısal yaklaşım: İşlevsel yaklaşımı kullanarak, zaten test edilmiş ve temellendirilmiş olan geri çekme işlevimi değiştirmem gerekiyor. Ve aşağıdaki gibi bir yöntem eklemek yeni gereksinimleri karşılayacaktır.
OOP'un yaklaşımı: OOP'nin yaklaşımını kullanarak, benzersiz geri çekme işlevinin uygulanmasıyla yeni bir sınıf yazmanız yeterlidir. Test edilen kod parçasına hiç dokunmadık.
Bir Değişiklik Talebi Daha
Peki ya gereksinim daha da değişirse? Kendi benzersiz para yatırma zorunluluğu olan kredi kartı hesabı eklemek ister misiniz?.
Yapısal yaklaşım: Yapısal yaklaşımı kullanarak test edilen para yatırma kodunu tekrar değiştirmeniz gerekir.
OOP'un yaklaşımı: Fakat nesne yönelimli yaklaşımı kullanarak, sadece mevduat yönteminin benzersiz uygulamasıyla yeni bir sınıf yaratacaksınız (aşağıdaki resimde kırmızıyla vurgulanmıştır). Yani yapısal programlama başlangıçta kolay bir yaklaşım gibi görünse de, uzun vadede OOP kazanır.
OOP'larda Kalıtımın Avantajları
Ancak tüm sınıflarda tekrarlanan kod parçalarına sahip olduğunuz iddia edilebilir.
Bunu aşmak için, bir üst sınıf, diyelim ki "hesap" yaratırsınız ve aynı para yatırma ve çekme işlevini uygularsınız. Ve alt sınıfları miras alınan "hesap" sınıfı yaparsınız. Böylece hesap sınıfındaki para çekme ve yatırma işlevlerine erişebilirler. İşlevlerin ayrı ayrı uygulanması gerekmez. Bu Java'da miras. .