1. Anasayfa
  2. Programlama

Java Serisi #3 Inheritance ve Overriding

Java Serisi #3 Inheritance ve Overriding
0

INHERITANCE (MİRAS ALMA)

Inheritance’ın kelime anlamı kalıtımdır. Bir sınıfın özelliklerini başka bir sınıfın almasına kalıtım denir. Özelliği alan sınıfa alt sınıf (subclass), özelliği kullanılan sınıfa üst sınıf (superclass) denir. Daha sonra alt sınıf başka bir sınıfın üst sınıfı olabilir.

Oracle’ın Java turorial sitesinde yer alan örnekten yola çıkarsak görüldüğü gibi bisiklet dağ bisikletini kapsıyor yani dağ bisikleti bisikletin alt sınıfı. Alt sınıf(subclass) üst sınıfa(superclass) erişebilir yani dağ bisikleti bisiklette bulunan tüm özellikleri kullanabilir. Ama burada dikkat edilmesi gereken yer, tanım itibariyle üst sınıf olduğundan bisiklet sınıfı alt sınıflara erişebilecek gibi dursa da dağ bisikletinde olan özellikleri kullanamaz. Şöyle de düşünebiliriz. Siz annenizden ve babanızdan gen alabilirsiniz ama onlar sizden alamaz. Bu da ona benzemektedir.

Şimdi bir örnek inceleyelim.

 

Yukarıda da görüldüğü gibi canlı sınıfına farklı bir sınıf ile eriştik ve canlı sınıfının methodlarını kullandık.

  • Bir sınıfa erişmek için extends anahtar kelimesi kullanılır.

class hayvan extends canli = “Hayvan bir canlıdır” gibi düşünebiliriz.

OVERRIDING (ÜZERİNE YAZMA)

Yukarıdaki örnekte canlı sınıfına kos() adlıbir method tanımladık. Daha sonra hayvan sınıfına hızlıKos() adında bir method daha tanımladık fakat istersek hızlıKos yerine yine kos() methodunu kullanıp “daha hızlı koşuyor” yazdırabiliriz. Bu hayvan sınıfı için kos methoduna overriding (üzerine yazma) uyguladığımız anlamına gelir.

OVERRIDINNG KURALLARI:

  • Final ve static tanımlı methodlar override edilemez.
  • Sadece inheritance ile üst sınıftan devralınan methodlar override edilebilir.
  • Private methodlar override edilemez.
  • Protected methodlar yalnızca aynı pakette ise override edilebilir.
  • Return tipi aynı olmalıdır.
  • Override edilen method daha kısıtlayıcı bir method olmamalıdır. Yani eğer protected ise protected veya public olabilir. Public ise sadece public olabilir gibi.
  • Constructorlar override edilemez.

 

Devamı için takipte kalınız.

Ne Düşünüyorsun?
  • 0
    harika_
    Harika!
  • 0
    g_zel_
    Güzel!
  • 0
    haval_
    Havalı!
  • 0
    e_lenceli_
    Eğlenceli!
  • 1
    _zg_n_m_
    Üzgünüm!
  • 0
    sevmedim_
    Sevmedim!

Sakarya Üniversitesi - Bilgisayar Mühendisliği

Yazarın Profili
İlginizi Çekebilir

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir