Kalıtım, nesne yönelimli programlamanın temel kavramlarından biridir. Programlamada, kalıtım kelimesi, bir alt sınıfın bir ana sınıfın durumunu ve davranışını üstlendiği bir ilişkiyi temsil eder.

Yazılım geliştirmede kalıtımın amacı, güvenli ve güvenilir yazılımın yeniden kullanımını kolaylaştırmaktır. Kalıtımı kullanmanın en büyük faydalarından biri, programlarınızdaki gereksiz kodları ortadan kaldırmasıdır.

Kalıtım Nasıl Çalışır?

Kalıtımın arkasındaki fikir, birçok sınıf veya nesnenin aynı öznitelik ve yöntem kümelerinden bazılarına sahip olmasıdır. Bu nedenle, güvenilir yazılım üretme ruhu içinde, yeni sınıflar artık önceden var olan ilgili sınıflardan faydalanabilir ve gerekirse mevcut durum ve davranışları genişletebilir.

Mirasın nasıl işlediğine dair gerçek dünyadaki bir örnek, meyveleri ele almak olabilir. Bu, bir dizi farklı öğeyi kapsüllemeye yarayan geniş bir etikettir.

Elma bir meyvedir ve portakal da öyle. Ancak portakal, elma değildir, bu nedenle bir mağazanız olsaydı, stok ürünlerinizden biri olarak meyveleriniz olmazdı. Belki de envanterinizde bir meyve bölümünüz olabilir ve bu bölümün altında elma ve portakal gibi daha spesifik ürünleriniz olur.

instagram viewer

Miras böyle işler.

Java'da Kalıtımı Kullanma

Kalıtım, aşağıdakileri kullanan herhangi bir programlama dilinde kullanılabilir: nesne yönelimli programlama paradigması. Bununla birlikte, kalıtımın tam olarak kullanıldığı yol, belirli programlama diline bağlıdır.

Örneğin, C ++ ayrıca nesne yönelimli bir programlama dilidir. C ++ çoklu kalıtım olarak bilinen şeyi desteklerken, Java yalnızca tek kalıtımı destekler.

Bunun anlamı, Java'da bir üst sınıfın birçok alt sınıfa sahip olabileceği, ancak her çocuk sınıfın yalnızca tek bir ebeveyn sınıfa sahip olabileceği (tek kalıtım) olmasıdır. Bununla birlikte, Java'da bir büyükbaba, ebeveyn ve çocuk ilişkisi oluşturarak dolaylı çoklu kalıtım elde etmenin bir yolu vardır.

Java'da Üst Sınıfı Oluşturma

Bir yazılım gereksinimleri belgesinden bir ana sınıf seçme süreci, nesneye yönelik analiz olarak bilinir. Bu süreç sırasında "a" ifadesi genellikle olası kalıtım ilişkilerini tanımlamak için kullanılır. Yukarıdaki örneğimizden yola çıkarak, meyvenin bizim ebeveyn sınıfımız olacağını görebilmelisiniz.

Meyve Veli Sınıfı Örneği


public class Fruit {
// Değişken Beyanı
korumalı Dize tohumu;
korumalı String skinColor;
korumalı Dize tadı;
// Varsayılan Yapıcı
public Fruit () {
tohum = "";
skinColor = "";
tat = "";
}
// Birincil Yapıcı
public Fruit (String seed, String skinColor, String tadı) {
this.seed = tohum;
this.skinColor = skinColor;
this.taste = tat;
}
// alıcılar ve ayarlayıcılar
public String getSeed () {
dönüş tohum;
}
public void setSeed (Dize tohumu) {
this.seed = tohum;
}
public String getSkinColor () {
skinColor döndür;
}
public void setSkinColor (String skinColor) {
this.skinColor = skinColor;
}
public String getTaste () {
dönüş tadı;
}
public void setTaste (Dize tadı) {
this.taste = tat;
}
// yemek yöntemi
public void eat () {
// bir meyvenin nasıl yenileceğine dair genel kod
}
// meyve suyu yöntemi
genel boşluk suyu () {
// bir meyvenin nasıl sıkılacağına dair genel kod
}
}

Yukarıdaki ana sınıfın en dikkate değer yönlerinden biri, her değişken bildirimiyle birlikte kullanılan erişim değiştiricidir. "Korumalı" erişim değiştiricisi, alt sınıf olmayan sınıfların üst sınıfın veri özniteliklerine erişim kazanmasını engellediği için üst sınıflarda kullanım için idealdir.

Kodun ilerleyen kısımlarında, herhangi bir Java sınıfı için genel yapı taşları olan oluşturucular, alıcılar ve ayarlayıcılarla tanışırsınız. Son olarak, programımızın üst sınıfında oluşturulan iki yöntemle (meyve suyu ve yemek) tanışacaksınız çünkü bunlar tüm meyveler için evrenseldir - tüm meyveler yenebilir ve sıkılabilir.

Java'da Alt Sınıflar Oluşturma

Alt sınıflar genellikle özel veya türetilmiş sınıflar olarak adlandırılır çünkü bir ebeveynden durum ve davranışı devralırlar ve genellikle bu öznitelikleri daha spesifik olacak şekilde özelleştirirler.

Örneğimizle devam edersek, portakalın neden yukarıdaki meyve sınıfının uygun bir çocuk sınıfı olduğunu görebilmelisiniz.

Turuncu Çocuk Sınıfı Örneği


public class Orange Fruit'i uzatır {
// değişken bildirimi
özel int üstünlükler;
// varsayılan yapıcı
public Orange () {
üstünlükler = 0;
}
// birincil kurucu
public Orange (String seed, String skinColor, String tadı, int supremes) {
süper (tohum, cilt rengi, tat);
this.supremes = üstünlükler;
}
// alıcılar ve ayarlayıcılar
public int getsupremes () {
dönüş üstünlükleri;
}
public void setsupremes (int supremes) {
this.supremes = üstünlükler;
}
// yemek yöntemi
public void eat () {
// portakal nasıl yenir
}
// meyve suyu yöntemi
genel boşluk suyu () {
// meyve suyu ve portakal nasıl yapılır
}
// soyma yöntemi
public void peel () {
// bir portakal nasıl soyulur
}
}

Normal bir Java sınıf bildiriminin nasıl göründüğü ile yukarıdaki kodumuzda bulunanlar arasında bir fark vardır. "Extends" anahtar sözcüğü, Java'da kalıtımı mümkün kılmak için kullanılan şeydir.

Yukarıdaki örneğimizde, çocuk sınıfı (turuncu) ana sınıfı (meyve) genişletir. Bu nedenle, meyve sınıfının durumuna ve davranışına artık turuncu sınıfı tarafından erişilebilir ve değiştirilebilir.

Turuncu sınıfımızın sahip olduğu benzersiz özellik, değişken adıyla tanımlanır (bu, portakallarda bulunan küçük segmentlerin resmi adıdır). Uzmanlaşma burada devreye giriyor; tüm meyvelerin üstünlüğü yoktur, ancak tüm portakallar vardır, bu nedenle supremes değişkenini turuncu sınıfı için ayırmak mantıklıdır.

Önceden var olan "yemek" ve "meyve suyu" yöntemlerine "soyma" yöntemini eklemek de mantıklıdır çünkü tüm meyveler soyulamasa da portakallar genellikle soyulur.

Mevcut “yemek” ve “meyve suyu” yöntemlerini değiştirmeyi düşünmeseydik, bunları portakal sınıfımıza dahil etmemiz gerekmeyeceğini unutmamalısınız. Orange sınıfındaki yöntemler, meyve sınıfındaki benzer herhangi bir yöntemi geçersiz kılar. Yani tüm meyveler aynı şekilde yenip sıkılsaydı bu yöntemleri portakal sınıfında oluşturmamız gerekmeyecekti.

Rol Oluşturucular Kalıtımda Oynar

Varsayılan olarak, üst sınıf yapıcıları alt sınıflar tarafından miras alınır. Bu nedenle, bir alt sınıf nesnesi oluşturulursa, bu, bir üst sınıf nesnesinin de otomatik olarak oluşturulduğu anlamına gelir.

Örneğimize geri dönecek olursak, her yeni bir turuncu nesne oluşturulduğunda, bir portakal meyve olduğu için bir meyve nesnesi de yaratılır.

Arka planda, bir alt sınıf nesnesi oluşturulduğunda, önce ana sınıfın yapıcısı, ardından alt sınıfın yapıcısı çağrılır. Yukarıdaki turuncu çocuk sınıfımızda, herhangi bir parametre olmadan turuncu bir nesne oluşturulursa, varsayılan meyve sınıfı kurucumuz çağrılır ve bunu varsayılan turuncu sınıf yüklenicimiz takip eder.

Yukarıdaki birincil kurucumuzdaki "süper" yöntemi, birincil kurucunun - ve ana meyve sınıfının varsayılan kurucusu değil - parametrelere sahip turuncu bir nesne her çağrıldığında çağrılmalıdır. oluşturuldu.

Artık Java'da Kalıtımı Kullanabilirsiniz

Bu makaleden kalıtımın ne olduğunu, nasıl çalıştığını ve programlamada neden bu kadar önemli bir kavram olduğunu öğrenebildiniz. Artık Java programlama dilini kullanarak miras ilişkilerinizi oluşturabilirsiniz. Dahası, artık bir büyük ebeveyn ilişkisi oluşturarak Java'nın tek kalıtım kuralını aşmayı biliyorsunuz.

İmaj Kredisi: Andreas Wohlfahrt /Pexels

E-posta adresi
Nesne Tabanlı Kodunuzu Kalıtımla Nasıl Düzenleyebilirsiniz?

Nesne yönelimli programlamayı doğru yapmak, kalıtım ve bunun kodlamayı nasıl basitleştirip hataları azaltabileceğini bilmeniz gerektiği anlamına gelir.

Sonrakini Oku

İlgili konular
  • Programlama
  • Java
  • Nesne yönelimli programlama
Yazar hakkında
Kadeisha Kean (3 Makale Yayınlandı)

Kadeisha Kean, Tam Yığın Yazılım Geliştiricisi ve Teknik / Teknoloji Yazarıdır. En karmaşık teknolojik kavramlardan bazılarını basitleştirme konusunda farklı bir yeteneği var; herhangi bir teknoloji acemi tarafından kolayca anlaşılabilecek malzeme üretmek. Yazma, ilginç yazılım geliştirme ve dünyayı dolaşma (belgeseller aracılığıyla) konusunda tutkulu.

Kadeisha Kean'dan Daha Fazla

Haber bültenimize abone ol

Teknoloji ipuçları, incelemeler, ücretsiz e-kitaplar ve özel fırsatlar için haber bültenimize katılın!

Bir adım daha…!

Lütfen size az önce gönderdiğimiz e-postadaki e-posta adresinizi onaylayın.

.