Kalıtım nedir?
Kalıtım , bir sınıfın başka bir sınıfın mülkünü elde ettiği bir mekanizmadır. Örneğin, bir çocuk ebeveynlerinin özelliklerini miras alır. Miras 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 önemli bir OOP kavramıdır.
Bu eğitimde öğreneceksiniz-
- Kalıtım Türleri
- Java'da kalıtım
- Java Kalıtım Örneği
- Süper Anahtar Kelime
- Örneklerle OOP'larda Kalıtımı Öğrenin
Kalıtım Türleri
Java'da çeşitli kalıtım türleri vardır:
Tek Kalıtım:
Tek Devralmada bir sınıf başka bir sınıfı genişletir (yalnızca bir sınıf).
Yukarıdaki şemada, Sınıf B yalnızca Sınıf A'yı genişletir. Sınıf A bir süper sınıftır ve Sınıf B bir Alt Sınıftır.
Çoklu Kalıtım:
Çoklu Kalıtımda, bir sınıf birden fazla sınıfı genişletiyor. Java, çoklu kalıtımı desteklemez.
Yukarıdaki diyagrama göre, Sınıf C hem Sınıf A hem de Sınıf B'yi genişletmektedir.
Çok Düzeyli Kalıtım:
Çok Düzeyli Devralmada, bir sınıf türetilmiş bir sınıftan miras alabilir. Bu nedenle, türetilmiş sınıf, yeni sınıf için temel sınıf haline gelir.
Şemada gösterildiği gibi, Sınıf C, B'nin alt sınıfıdır ve B, Sınıf A'nın bir alt sınıfıdır.
Hiyerarşik Kalıtım:
Hiyerarşik Devralmada, bir sınıf birçok alt sınıf tarafından miras alınır.
Yukarıdaki örnekte olduğu gibi, Sınıf B, C ve D aynı sınıf A'yı miras alır.
Karma Kalıtım:
Karma kalıtım, Tekli ve Çoklu kalıtımın bir kombinasyonudur.
Yukarıdaki örnekte olduğu gibi, A Sınıfının tüm halka açık ve korumalı üyeleri, önce Sınıf B ve ikinci olarak Sınıf C yoluyla Sınıf D'ye aktarılır.
Not: Java, hibrit / Çoklu kalıtımı desteklemez
Java'da Kalıtım
JAVA MİRASI , bir sınıfın başka bir sınıfın mülkiyetini elde ettiği bir mekanizmadır. Java'da, iki sınıf arasında bir "Is-A" ilişkisi olduğunda, Miras'ı kullanırız. Ana sınıfa süper sınıf, devralınan sınıfa ise alt sınıf adı verilir. Anahtar kelime
extends
alt sınıf tarafından süper sınıfın özelliklerini miras almak için kullanılır.
Kalıtım, kodun yeniden kullanılabilirliğine yol açtığı için önemlidir.
Java Devralma Sözdizimi:
class subClass extends superClass{//methods and fields}
Java Kalıtım Ö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
Süper anahtar kelime "bu" anahtar kelimesine benzer.
Süper anahtar sözcüğü, herhangi bir veri üyesine veya ana sınıfın yöntemlerine erişmek için kullanılabilir.
Süper anahtar kelime değişken, yöntem ve yapıcı düzeyinde kullanılabilir.
Sözdizimi:
super.();
Örneklerle OOP'larda Kalıtımı Öğrenin
Önceki örnekteki aynı bankacılık uygulamasını düşünün.
Biri tasarruf için, diğeri kontrol için (cari olarak da bilinir) olmak üzere iki farklı hesap türü açmamız gerekiyor.
Yapılandırılmış ve nesne yönelimli bir programlama perspektifinden kodlamaya nasıl yaklaşabileceğimizi karşılaştırıp inceleyelim . Yapısal yaklaşım : Yapısal programlamada iki işlev oluşturacağız -
- Biri geri çekilecek
- Ve diğeri para yatırma işlemi için.
Bu işlevlerin çalışması hesaplar arasında aynı kaldığından.
OOP'nin yaklaşımı : OOPs programlama yaklaşımını kullanırken. İki sınıf yaratırdık.
- Her biri para yatırma ve çekme işlevlerine sahiptir.
- Bu fazladan fazladan iş sağlayacaktır.
Yazılımda Değişiklik İsteği
Şimdi, yazılım endüstrisinde çok yaygın olan bir şeyin gereksinim özelliklerinde bir değişiklik var. Kredili Mevduat Kredisi ile ayrıcalıklı Banka Hesabı eklemeniz gerekiyor. Arka plan için, açık hesap, hesabınızdaki mevcut bakiyeden daha fazla bir miktarı çekebileceğiniz bir imkandır.
Yapısal yaklaşım: İşlevsel yaklaşımı kullanarak, zaten test edilmiş ve temel alınan geri çekme işlevimi değiştirmem gerekiyor. Ve aşağıdaki gibi bir yöntem ekleyin, yeni gereksinimleri karşılayacaktır.
OOP'nin yaklaşımı: OOP'nin yaklaşımını kullanarak, geri çekme fonksiyonunun benzersiz bir uygulaması olan yeni bir sınıf yazmanız yeterlidir. Test edilen kod parçasına asla dokunmadık.
Başka Bir Değişiklik İsteği
Gereklilik daha da değişirse ne olur? Kendine özgü mevduat gereksinimi olan kredi kartı hesabı eklemek gibi .
Yapısal yaklaşım: Yapısal yaklaşımı kullanarak, test edilen depozito kodunu tekrar değiştirmeniz gerekir.
OOP'nin yaklaşımı : Ancak nesne yönelimli yaklaşımı kullanarak, benzersiz para yatırma yöntemi uygulamasıyla (aşağıdaki resimde kırmızıyla vurgulanan) yeni bir sınıf yaratacaksınız.
Dolayısıyla, yapısal programlama başlangıçta kolay bir yaklaşım gibi görünse de, OOP'ler uzun vadede kazanır.
OOP'larda Kalıtımın Avantajı
Ancak, tüm sınıflarda yinelenen bir kod parçasına sahip olduğunuz iddia edilebilir.
Bunun üstesinden gelmek için, bir ebeveyn sınıfı oluşturursunuz, "hesap" deyin ve aynı para yatırma ve çekme işlevini uygulayın. Ve alt sınıfları "hesap" sınıfını devralın. Böylece hesap sınıfında para çekme ve para yatırma işlevlerine erişebilecekler.
Fonksiyonların ayrı ayrı uygulanması gerekli değildir. Bu Java'da Miras. .