Serkan Ayyıldız

Meraklı bir yazılım uzmanı...

Java Kalıtım (Inheritance) Alma

Java meraklısı yazılım uzmanlarına ve adaylarına yeniden selamlar :)

Nesne yönelimli programlama tekniğini Java programlama diliyle birleştirdiğimiz makale dizisinin bugünkü konusunda inheritance (kalıtım) başlığıyla devam ediyoruz.

Kalıtım, genel anlamda üst nesneden özellikler denilebilir tabi bunu programlama olarak değil öncelikle genel günlük hayat kapsamında düşünün..Örneğin esmer bir babanın esmer olan çocuğu ya da kahverengi göz rengi olan annenin yine kahverengi göz rengine sahip çocuğu gibi düşünebilirsiniz ama bilimsellik kısmına girip bunların olasılıklarını
felan hesaplamaya niyetimiz yok :)

İşte inheritance denilen konuyu yukarıdaki açıklamaya benzetebiliriz,burada kalıtımı alan nesneye derived class (kalıtım alan sınıf) kalıtım veren nesneye ise base (taban,temel) class denilmektedir.

Hatta bu konuyla hiç unutmam kendi üniversitemin yazılım mühendisliği dersine misafir olarak katıldığımda base class (taban sınıf) nesnesine super class denildiğini de duydum.Eğer siz de bilgisayar programlama,yazılım mühendisliği gibi bölümlerde okuduysanız super class sözcüklerini duymuş olabilirsiniz.

Kalıtım konusuyla biraz daha teorik ilerleyeceğiz..Java ve diğer nesne yönelimli programlama dillerinde kalıtım konusunun önemi hat safhadadır çünkü tasarlanan programın sınıflarındaki her özellik hep kendisine özel olmuyor ve mutlaka bir noktada ortak özelliğe sahip olurlar.Dolayısıyla ortak özelliklere sahip sınıfları sürekli baştan yazmak oldukça zaman ve emek kaybına neden oldukları için ortak özellikleri base classtan almak oldukça akıllıca olur.

Kalıtım veren base ve kalıtım alan derived class yapısını şu görselle anlamaya çalışalım:



Gördüğünüz gibi bitkilerde hayvanlarda canlı oldukları için canlı isimli sınıftan kalıtım alırlar,hatta diyebiliriz ki bitkilerinde hayvanarında yaşları olduğu için int tipinde yaş isimli bir property'yi ayrı ayrı bitki ve hayvan classlarına yazmak yerine canlı classına yazar ve canlı sınıfından bitki ve hayvan classına kalıtım vererek daha etkin bir program geliştirmiş oluruz.
Inheritance konusunun ne olduğunu ve neden varolduğunu öğrendiğimize göre şimdi NetBeans IDE'mizi açarak
yukarıdaki görseli Java ile kod ortamına dökelim.

Öncelikle "Canli" adında bir sınıf oluşturalım ardından bir canlıya ait olabilecek özellikleri ve metotları yazalım:



Bu classı JFrame içinde bir yerde instance (örnek kopya) alarak propertylerine değerler verip metotlarını çağıralım:



Buraya kadar öğrendiklerimizi zaten önceki makalelerimizde biliyorduk,şimdi ise "Bitki" ve "Hayvan" isimli sınıflarımızı oluşturalım:





İçerisi boş olan bitki ve hayvan classlarına canlı sınıfından kalıtım alalım,bunun için Java diline özel "extends" (genişle,sürdür) deyimini kullanıyoruz:





Tekrar JFrame'e geri dönüyor ve bitki ile hayvan classlarından instance alıyoruz:



Dikkat ederseniz kalıtım alan bitki ve hayvan isimli classlarımızın kalıtım veren canlı classından hiçbir farkları yok çünkü kendilerine has özelliklerini ve metotlarını belirtmedik.O halde kalıtım alan sınıflarında kendine ait farklı özellikleri ve metotları olsun:





JFrame'deki instancelerine tekrar bakıyoruz ve canlı sınıfının haricinde kendi alt property'lerinin de metotlarının da
geldiğini görüyoruz:



Böylece kalıtım alma ve verme konusunu öğrenmiş bulunuyoruz :)

Java ile inheritance konusunun böylece sonuna geldik,bir sonraki makalemizde object orianted programming konusuna devam edeceğiz,hoşçakalın esen kalın :)

Bir yorum bırak E-posta adresiniz yayınlanmayacaktır.

Menu