logo

Java'da Kalıtım

  1. Miras
  2. Miras Türleri
  3. Java'da sınıf durumunda neden çoklu miras mümkün değildir?

Java'da Kalıtım bir nesnenin bir ana nesnenin tüm özelliklerini ve davranışlarını edindiği bir mekanizmadır. Bu önemli bir parçası OOP'lar (Nesneye Yönelik programlama sistemi).

Java'da kalıtımın ardındaki fikir, yeni şeyler oluşturabilmenizdir. sınıflar mevcut sınıfların üzerine inşa edilmiştir. Mevcut bir sınıftan miras aldığınızda üst sınıfın yöntemlerini ve alanlarını yeniden kullanabilirsiniz. Üstelik mevcut sınıfınıza yeni yöntemler ve alanlar da ekleyebilirsiniz.

Miras temsil eder IS-A ilişkisi olarak da bilinen ebeveyn-çocuk ilişki.

Neden Java'da miras kullanılmalı?

Mirasta Kullanılan Terimler

    Sınıf:Sınıf, ortak özelliklere sahip bir grup nesnedir. Nesnelerin oluşturulduğu bir şablon veya plandır.Alt Sınıf/Çocuk Sınıfı:Alt sınıf, diğer sınıfı miras alan bir sınıftır. Aynı zamanda türetilmiş sınıf, genişletilmiş sınıf veya alt sınıf olarak da adlandırılır.Süper Sınıf/Ebeveyn Sınıfı:Süper sınıf, bir alt sınıfın özellikleri devraldığı sınıftır. Aynı zamanda temel sınıf veya ana sınıf olarak da adlandırılır.Tekrar Kullanılabilirlik:Yeniden kullanılabilirlik, adından da anlaşılacağı gibi, yeni bir sınıf oluşturduğunuzda mevcut sınıfın alanlarını ve yöntemlerini yeniden kullanmanızı kolaylaştıran bir mekanizmadır. Önceki sınıfta tanımlanmış olan aynı alanları ve yöntemleri kullanabilirsiniz.

Java Mirasının sözdizimi

 class Subclass-name extends Superclass-name { //methods and fields } 

anahtar kelimeyi genişletir Mevcut bir sınıftan türetilen yeni bir sınıf oluşturduğunuzu belirtir. 'Uzatmak'ın anlamı işlevselliği arttırmaktır.

reaksiyon js öğreticisi

Java terminolojisinde miras alınan sınıfa ebeveyn veya üst sınıf, yeni sınıfa ise çocuk veya alt sınıf adı verilir.


Java Miras Örneği

Java'da Kalıtım

Yukarıdaki şekilde gösterildiği gibi Programcı alt sınıf, Çalışan ise üst sınıftır. İki sınıf arasındaki ilişki Programcı IS-A Çalışanı . Bu, Programcının bir tür Çalışan olduğu anlamına gelir.

e-bankacılığın sınırlamaları
 class Employee{ float salary=40000; } class Programmer extends Employee{ int bonus=10000; public static void main(String args[]){ Programmer p=new Programmer(); System.out.println('Programmer salary is:'+p.salary); System.out.println('Bonus of Programmer is:'+p.bonus); } } 
Şimdi Test Edin
 Programmer salary is:40000.0 Bonus of programmer is:10000 

Yukarıdaki örnekte, Programcı nesnesi hem kendi sınıfının hem de Çalışan sınıfının alanına, yani kodun yeniden kullanılabilirliğine erişebilir.


Java'da miras türleri

Java'da sınıf temelinde üç tür kalıtım olabilir: tek, çok düzeyli ve hiyerarşik.

Java programlamada çoklu ve hibrit kalıtım yalnızca arayüz aracılığıyla desteklenir. Arayüzler konusunu daha sonra öğreneceğiz.

Java'da miras türleri

Not: Java'da sınıf aracılığıyla çoklu kalıtım desteklenmez.

Bir sınıfın birden fazla sınıfı miras almasına çoklu kalıtım denir. Örneğin:

Java'da çoklu kalıtım

Tek Kalıtım Örneği

Bir sınıf başka bir sınıfı miras aldığında buna denir. tek miras . Aşağıda verilen örnekte Dog sınıfı Animal sınıfını miras aldığı için tek miras söz konusudur.

Dosya: TestInheritance.java

 class Animal{ void eat(){System.out.println('eating...');} } class Dog extends Animal{ void bark(){System.out.println('barking...');} } class TestInheritance{ public static void main(String args[]){ Dog d=new Dog(); d.bark(); d.eat(); }} 

Çıktı:

 barking... eating... 

Çok Düzeyli Kalıtım Örneği

Miras zinciri olduğunda buna denir. çok düzeyli miras . Aşağıda verilen örnekte görebileceğiniz gibi BabyDog sınıfı Dog sınıfını miras alır, o da yine Animal sınıfını miras alır, yani çok düzeyli bir kalıtım söz konusudur.

Dosya: TestInheritance2.java

dize karşılaştırması için c programı
 class Animal{ void eat(){System.out.println('eating...');} } class Dog extends Animal{ void bark(){System.out.println('barking...');} } class BabyDog extends Dog{ void weep(){System.out.println('weeping...');} } class TestInheritance2{ public static void main(String args[]){ BabyDog d=new BabyDog(); d.weep(); d.bark(); d.eat(); }} 

Çıktı:

 weeping... barking... eating... 

Hiyerarşik Kalıtım Örneği

İki veya daha fazla sınıfın tek bir sınıfı miras almasına denir. hiyerarşik miras . Aşağıda verilen örnekte Dog ve Cat sınıfları Animal sınıfını miras alır, dolayısıyla hiyerarşik bir miras söz konusudur.

Dosya: TestInheritance3.java

 class Animal{ void eat(){System.out.println('eating...');} } class Dog extends Animal{ void bark(){System.out.println('barking...');} } class Cat extends Animal{ void meow(){System.out.println('meowing...');} } class TestInheritance3{ public static void main(String args[]){ Cat c=new Cat(); c.meow(); c.eat(); //c.bark();//C.T.Error }} 

Çıktı:

java dersleri
 meowing... eating... 

S) Java'da neden çoklu kalıtım desteklenmiyor?

Karmaşıklığı azaltmak ve dili basitleştirmek için Java'da çoklu kalıtım desteklenmez.

A, B ve C'nin üç sınıf olduğu bir senaryoyu düşünün. C sınıfı A ve B sınıflarını miras alır. A ve B sınıfları aynı yönteme sahipse ve onu alt sınıf nesnesinden çağırıyorsanız, A veya B sınıfının yöntemini çağırma konusunda belirsizlik olacaktır.

Derleme zamanı hataları çalışma zamanı hatalarından daha iyi olduğundan, 2 sınıfı devralırsanız Java derleme zamanı hatası oluşturur. Yani aynı yönteminiz olsun veya olmasın, derleme zamanı hatası olacaktır.

 class A{ void msg(){System.out.println('Hello');} } class B{ void msg(){System.out.println('Welcome');} } class C extends A,B{//suppose if it were public static void main(String args[]){ C obj=new C(); obj.msg();//Now which msg() method would be invoked? } } 
Şimdi Test Edin
 Compile Time Error