Miras Java (Örnek ile)

⚡ Akıllı Özet

Miras Java Bu, bir sınıfın `extends` anahtar kelimesi aracılığıyla başka bir sınıfın alanlarını ve metotlarını edinmesini sağlayan bir mekanizmadır. Kodun tekrar kullanılabilirliğini teşvik eder ve bir üst sınıf ile alt sınıfları arasında "Bir-Ol" ilişkisini modeller.

  • 🧬 Kalıtımın Tanımı: Bir sınıf, `extends` anahtar kelimesini kullanarak başka bir sınıfın alanlarını ve metotlarını edinir.
  • 👨👩👧 Bir İlişki: Üst sınıf ve alt sınıf hiyerarşisini modeller.
  • 🗂️ Beş Tür: Tekli, çoklu, çok seviyeli, hiyerarşik ve hibrit kalıtım.
  • ???? Java Sınırlama: Java Sınıflar aracılığıyla çoklu veya hibrit kalıtımı desteklemez.
  • 🔑 Süper Anahtar Kelime: Alt sınıftan üst sınıfın değişkenlerine, metotlarına ve kurucularına erişim sağlar.
  • ✅ Yarar: Test edilmiş kodu yeniden kullanır ve mevcut sınıfları değiştirmeden yeni sınıflar aracılığıyla özellikler ekler.

Miras Java

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ı: Ancak nesne yönelimli yaklaşımı kullanarak, para yatırma yönteminin benzersiz bir uygulamasını içeren yeni bir sınıf oluşturmanız yeterli olacaktır (aşağıdaki resimde kırmızıyla vurgulanmıştır). Bu nedenle, yapısal programlama başlangıçta kolay bir yaklaşım gibi görünse de, uzun vadede nesne yönelimli programlama 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ı

SSS

Java Çoklu sınıf kalıtımından kaçınarak, derleyicinin hangi kalıtımlı yöntemi kullanacağına karar veremediği "elmas problemi"ni önler. Bunun yerine, Java Bir sınıfın, benzer esnekliği güvenli bir şekilde elde etmek için birden fazla arayüzü uygulamasına olanak tanır.

`this` anahtar kelimesi mevcut nesneyi ve üyelerini ifade ederken, `super` ise doğrudan üst sınıfı ifade eder. Bir alt sınıftan üst sınıfın değişkenlerini, metotlarını veya kurucusunu çağırmak için `super` kullanılır.

Kalıtım, bir alt sınıfın bir üst sınıfı genişlettiği bir "Olmak-Bir Olmak" ilişkisini modeller. Bileşim ise bir sınıfın diğer nesneleri içerdiği bir "İçermek-Bir Olmak" ilişkisini modeller. Bileşim genellikle daha esnektir ve gevşek bağlantılı tasarımlar için tercih edilir.

Yapay zeka, sınıf sorumluluklarını analiz edebilir, paylaşılan temel sınıflar önerebilir, derin kalıtım yerine arayüzleri tavsiye edebilir ve yinelenen kodu işaretleyebilir.ping Geliştiriciler, nesne yönelimli tasarım ilkelerine uygun, temiz ve yeniden kullanılabilir hiyerarşiler oluştururlar.

Evet. Yapay zeka destekli statik analiz, kalıtım derinliğini ölçebilir, kırılgan veya aşırı iç içe geçmiş hiyerarşileri işaretleyebilir ve bakım kolaylığını artırmak ve sıkı bağımlılığı azaltmak için bileşim veya arayüzlere doğru yeniden düzenleme önerebilir.

Bu yazıyı şu şekilde özetleyin: