1

Java Eğitimleri 36 – Java’da Kalıtım(Inheritance)

 

Herkese merhaba. Bugünkü eğitim yazımızda kalıtım konusuna değineceğiz. Nedir bu kalıtım?

 

Kalıtım(inheritance) kullanımları, sınıflar arası bağlantıyı sağlar diyebiliriz ancak bu kalıbın diğer bağlantılardan farkı var. Kalıtım olarak bağladığımız sınıf diğer sınıfın alt sınıfı(subclass), diğer sınıf ise süper sınıf(superclass ya da baseclass) olarak adlandırılır. Her alt sınıf, süper sınıfın özelliklerini taşır ve süper sınıfın metotlarını ve değişkenlerini alt sınıfta kullanabilmek mümkündür. Süper sınıftan alınan bazı özellikler alt sınıfta farklı kodlar yazılarak değiştirilebilir.

 

Örneğin; deneme adlı bir sınıfımız var ve biz, deneme sınıfında kullandığımız kodları uygulama adlı sınıfımızda kullanmak istiyoruz. Bunu nasıl yapabiliriz?

 

Deneme sınıfımızdaki değişkenleri bu şekilde oluşturduk. Şimdi, uygulama sınıfımızda kalıtımı gerçekleştirelim.

Buradaki extends deyimi; deneme adlı sınıfımıza ait özellikleri, uygulama sınıfımızda kullanabilmemizi sağlar. Buna göre alt sınıf(subclass) uygulama adlı sınıfımız, süper sınıf(superclass) ise deneme adlı sınıfımızdır.

 

NOT: Eğer süper sınıfımız bir yapılandırıcı içeriyorsa , alt sınıfta oluşturulan extends deyimi hata verecektir. Bu hata şu şekilde düzeltilebilir:

 

Deneme sınıfında oluşturduğumuz kodlar:

 

Bu kodlar, uygulama sınıfında hata göstermesine neden olacaktır.

 

Bu hata, deneme sınıfımızda tanımladığımız private değişkenler nedeniyle oluşur. Bu hatayı düzeltmek için yapılandırıcı oluşturabiliriz ancak tüm değerleri tanımlandığı gibi alabilmemiz için super deyimini kullanmamız gerekecektir.

 

 

Tüm bunları tek tek yazmak yerine Java bu hatayı, hata işaretine bastığımızda düzeltebiliyor.

 

Bu işlemleri de yaptığımızda aynı kodlar editör ekranımızda oluşacaktır.

 

Bir örnek çözelim.

3 sınıf oluşturacağız bu örneğimizde: text,calisan ve yonetici sınıfları. Calisan sınıfımız superclass, yonetici sınıfımız da subclass olacak. Text sınıfımızı da oluşturduğumuz kodları, konsola yazdırabilmek için oluşturduk. O halde başlayalım.

Calisan sınıfımızdaki kodlar:

 

 

Yonetici sınıfımızdaki kodlar:

Text sınıfımızdaki kodlar:

 

Çıktımız:

 

 

Görüldüğü gibi calisan adlı sınıfımızdaki değişkenleri kullanarak yonetici sınıfında kodlarımızı oluşturduk. Peki calisan adlı sınıfımızda tanımlamadığımız ama yonetici sınıfında kullanmak istediğimiz değişkenleri nasıl tanımlarız?

Aynı örnek üzerinden devam edelim ve yonetici sınıfına değişken ekleyelim.

 

 

Bu durumda sadece yonetici ve text sınıfında değişiklikler yapmış olduk. Text sınıfı:

 

 

Çıktımız:

 

 

Subclass’a değişken eklediğimizde de yukarıdaki gibi yapabiliriz. Subclass’ta tanımladığımız BilgileriGoster() metodumuzda da super deyiminden yararlandık. System.out.println yardımıyla yazdırmak isteseydik eğer hata verecekti(Calisan adlı sınıfta private olarak tanımlandıkları için). Bu hatayı düzeltmek için de setter getter metotlarını kullanabilirdik.

 

 

NOT: Eğer kodları bu şekilde yazmak istersek, superclass’ta getter setter metotlarını oluşturmamız gerekecektir.

 

Kalıtım deyimlerini böylelikle tamamlamış olduk. Umarım faydalı olmuştur. Sorularınız için bana nsezer@industryolog.com mail adresimden ulaşabilirsiniz. İyi çalışmalar 🙂


Like it? Share with your friends!

1

0 Comments

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir