Java’da Inheritance (Kalıtım) 2

234
views

Bu yazımızda inheritance konusuna devam edeceğiz. Ek detaylarından ve inceliklerinden bahsetmek istiyorum.

Direk bir örnek üzerinden anlamaya çalışalım.

2 tane class oluşturuyoruz ve bu classın içinde overriding tekrardan yapacağız. Ancak bu overriding te bilmeniz gereken bir kaç püf noktalar var. Eğer bunları da yaparsanız daha güvenli bir şekilde kodunuzu yazmış olacaksınız.

Hayvan classımızı oluşturduk. İçine 4 tane özellik (isim , kilo , boy , bacak_sayisi) ekledik. Ardından constructorımızı oluşturduk 4 parametre alacak şekilde. Getter ve setter metodlarını ekledik. Ek olarak 2 tane yemek_ye() ve  harekete_gec() metodumuzu yazdık.

Ardından Kedi classımızı oluşturuyoruz.

Kedi classımız Hayvan classından miras alıyor. Bu yüzden extends Hayvan şeklinde yazdık. Ve Kedi classımızında kendine ait bir özelliği (dis_sayisi) var onu ekledik. Yine constructorımızı oluşturduk (4 parametre Hayvan classından 1 parametre Kedi classından gelecek şekilde.) Getter ve setter metodlarımızı ekledik. Ve son olarakta kos(int hız) metodumuzu int veri tipinde hiz adında bir parametre alacak şekilde yazdık. Bu metodumuzun içine Hayvan classında yazmış olduğumuz harekete_gec() metodumuzu çağırdık.

2 classımızda hazır.

Şimdi main classımız içinde main metodumuzun içinde bu metodu çağıracağız.

Kedi objesini yarattık ve parametrelerimizi ekledik. Ve kos() metodumuzu çağırdık. Ekran çıktısı yukarıdaki gibi “Hayvan 20 km hız ile hareket ediyor” şeklinde. Biz Kedi classının içinde kos() metodu altında Hayvan classında yaramış olduğumuz harekete_gec() metodunu çağırdık. Bu yüzden “Hayvan 20 km hız ile hareket ediyor” şeklinde outputu aldık.

Eğer biz Kedi classındaki kos() metodunda aşağıdaki gibi düzenleme yaparsak

yani harekete_gec() metodu önündeki super anahtar kelimesini kaldırırsak bakalım bu sefer çıktı nasıl olacak?

“Kedi 20 km hız ile hareket ediyor” şeklinde cıktımızı aldık. Bu şekilde kullandığımız zaman önceden yaratmış olduğumuz metot override edilmiş oldu. Böylece kendi classımızda ki yani Kedi classındaki harekete_gec() metodunu çalıştırmış olduk.

Kedi classında override etsek bile super ile yazdığımız için üst sınıfın metodunu kullanmış olduk. Ancak yukarıdaki görselde olduğu gibi kullanırsak çok daha güvenli olacaktır. Override etmesek çıktısı “Hayvan 20 km hız ile hareket ediyor” olacaktı. Override edince de otomatik olarak algılıyor ve kendi metodunu çağırıyor. Kısacası yukarıdaki görseldeki gibi yazdığımızda çok daha güvenli bir şekilde halletmiş olacağız. En azından daha sonrasında overriding edersek kodumuzu tekrardan değiştirmek zorunda kalmayız. Override edilmiş metotların her zaman öncelikli kullanılması bizim işimize daha çok gelecektir. Bu da inheritance ince bir detayı.

Bir sonraki yazımızda composition konusuna değineceğiz. Sonraki derse geçmek için tıklayınız.

 

 

1 Yorum

CEVAP VER

Lütfen yorumunuzu giriniz!
Lütfen isminizi buraya giriniz