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:

  1. Tek Kalıtım
  2. Çoklu Kalıtım
  3. Çok Düzeyli Kalıtım
  4. Hiyerarşik Kalıtım
  5. 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).

Tek Miras Java
Tek Kalıtım

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.

Çoklu Miras Java
Java Çoklu Kalıtım

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.

Çok Düzeyli Kalıtım Java
Çok Düzeyli Kalıtım

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.


Hiyerarşik Kalıtım Java
Hiyerarşik Kalıtım

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.


Hibrit Kalıtım
Hibrit Kalıtım

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:


Örnek Java miras
Java Miras Örneği

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.

OOP'ta Kalıtım

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 –

  1. Geri çekilecek bir
  2. Ve diğeri para yatırma işlemi için.

Çünkü bu işlevlerin çalışması hesaplar arasında aynı kalır.

OOP'larda kalıtım

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.

OOP'larda kalıtım

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.

Yazılımda Değişiklik Talebi

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.

Yazılımda Değişiklik Talebi

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.

Yazılımda Değişiklik Talebi

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?.

Yazılım gereksiniminde Çoklu Değişiklik Talebi

Yapısal yaklaşım: Yapısal yaklaşımı kullanarak test edilen para yatırma kodunu tekrar değiştirmeniz gerekir.

Yazılımda Çoklu Değişiklik İsteğine Yapısal Yaklaşım

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'nin Çoklu Değişiklik İsteğine yaklaşımı

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. .

OOP'larda Kalıtımın Avantajları

OOP'larda Kalıtımın Avantajları