Anotasyon

Java Inheritance

Merhaba arkadaşlar,
mobilhanem.com üzerinden anlattığımız/yayınladığımız derslerimize Java Nesne Yönelimli Programlama başlığı altında Java Inheritance konusunuyla devam ediyoruz.

Java Inheritance

Java Inheritance temel seviyede kodlama yaparken bile ihtiyaç duyulan bir yapıdır. Bir çok projede farklı sınıflar birbirleriyle aynı değişkenleri veya aynı metotları içerebilirler. Bu gibi durumlarda aynı kodların tekrar tekrar yaratılmasını önlemek için Java’da sınıflar birbirinden türeyebilirler.

Superclass ve Subclass

Sınıfların birbirlerinden türemeleri sonucunda superclass ve subclass kavramları ortaya çıkar. Bir sınıf başka bir sınıftan türüyorsa yani başka bir sınıfın değişkenlerini ve metotlarını miras alıyorsa subclass olarak adlandırılır. Eğer bir sınıftan başka bir sınıf miras alınıyor veya türetiliyorsa o sınıf superclass olarak adlandırılır.

Kısacık bir örnekle superclass ve subclass ‘ın nasıl gözüktüğüne aşağıdaki kod parçasından gözatabiliriz.

Object Sınıfı

Java Inheritance aslında temelde var olan hatta yazılımcıların farkında olmadan kullandıkları bir yapıdır. Java’da kullanılan tüm sınıflar Object sınıfından  türetilmiştir. Bir sınıfın tipi bilinmiyorsa bu sınıf new operatörüyle Object sınıfına eşitlenebilir. Bu bir problem yaratmayacaktır, çünkü temelde Object sınıfından türemektedir.  Tüm sınıflar Object sınıfından türedikleri için de Object sınıfı içindeki değişken ve metotları miras alırlar.

Yukarıdaki örnekte görüldüğü gibi oluşturulan sınıf Object sınıfındaki tüm metotları miras almıştır. Object sınıfı tüm sınıfların superclass ‘ı diyebiliriz.

Superclass ve subclass ın daha iyi anlaşılması için aşağıdaki örneği inceleyelim.

Person sınıfı kişilerin ad ve soyad gibi özel bilgilerini temsil etmektedir.

Employee sınıfı ise işyerine ait iş ünvan bilgisini tutmaktadır. İş ünvanı ile birlikte ad ve soyad gibi kişi,sel bilgileri Person sınıfının yanında Employee sınıfı içersinde de tutmak yerine Person sınıfı superclass, Employee sınıfı ise Person sınıfını miras alarak subclass görevi görmektedir.

Teorik olarak;

  1. Subclass, paket yapısı farketmeksizin tüm protected ve public üyeleri superclass’tan miras alabilir.
  2. Miras alınan alanlar sınıf içerisindeki diğer üyelerin kullanıldığı gibi direk olarak kullanılabilirler.
  3. Superclass içerisindeki bir değişken ile aynı isimde bir değişken subclass içerisinde üretildiğinde bu olay hiding(gizleme) olarak adlandırılır. (önerilmez)
  4. Superclass içerisindeki bir metot ile aynı isimde bir metot subclass içerisinde üretildiğinde bu olay overriding olarak adlandırılır.
  5. Superclass içerisindeki static bir metot ile aynı isimde bir static metot subclass içerisinde üretildiğinde bu olay hiding olarak adlandırılır. (önerilmez)

Sonuç

Java Inheritance yapısından faydalanılarak kod tekrarının önlendiği, temiz kodlar yazılabilir. Büyük projelerde bir çok sınıfta kullanılan metotta bir dğeişiklik yapıldığında tek bir yerde değişikliği uygulama çoğu zaman yeterli olacaktır. Bu şekilde Java’da önem arzeden bakımı kolay, esnek ve geliştirmeye ve değiştirmeye açık kodlar yazmak daha kolay hale gelecektir.

Konuyla ilgili yorumlarınızı konu altından yapabilirsiniz, ayrıca sorularınızı Mobilhanem Soru&Cevap bölümünden sorabilirsiniz.

Tüm Java Dersleri için tıklayınız..

Eren Başaran

Software Developer
Mobilhanem Yazarı

Yorum Yaz

Haftalık Bülten

Mobilhanem'de yayınlanan dersleri haftalık mail almak ister misiniz?