Kotlin’de Kalıtım(Inheritance) Nedir?
Giriş
Merhaba sevgili Kotlin kullanıcıları, ilk makaleme hoş geldiniz. Bir süredir makale yazmak istiyordum ve hangi konuyu seçeceğimi bilmiyordum. Şu sıralar üzerinde tekrar ettiğim konu olan Inheritance’ı seçtim çünkü anladıklarımı yazıya dökersem daha iyi pekiştirebileceğimi düşündüm. Umarım sizin de işinize yarar ve anlamanıza yardımcı olur. Buyrun yazımıza geçelim.
Kalıtım
Kalıtım programlamada bir sınıfın üst bir sınıfa benzetilmesidir. Başka bir deyişle elimizde ki bir sınıftan başka bir sınıf türetmemiz demektir. Öncelikle temel sınıfın başına open anahtar kelimesi eklenir. Daha sonra benzetmek istediğimiz sınıfın sonuna “:” operatörü ile temel sınıfın ismi yazılır ve değişkenleri içeri eklenir.
Bir örnekle göstermek gerekirse,
Öncelikle Kisi adında bir sınıf açalım ve başına open anahtar kelimesini yazalım sonrasında ad ve yas değişkenlerini ekleyelim.
Ardından iki farklı sınıf açalım ve “:” operatörü ile Kisi sınıfına bağlayalım. Gördüğünüz gibi öğrenci ve öğretmende bir isime ve yaşa sahip oldukları için Kisi sınıfına bağlayarak aynı değişkenleri verdik.
Ardından main fonksiyon içerisinde Ogrenci ve Ogretmen sınıflarımızı bir nesneye bağlayıp sınıflarının içerisine yazdığımız fonksiyonları çağıralım.
Fonksiyonu çalıştırdığımızda göreceğimiz çıktımız aşağıdaki gibidir:
Peki ya bu kişilerin ayrı ayrı özelliklerini göstermek isteseydik?
Örneğin hayvanların çıkardığı yansıma sesler, kedi ve köpek aynı sesi çıkaramaz… Eğer ki kedi ve köpek için ayrı ayrı sınıflarımız var ise ve bu sınıfları üst bir sınıfa bağladıysak bunu kodlamaya nasıl dökebiliriz? Gelin yukarıda ki örnek üzerinde gösterelim.
Mesela öğrencimizin bölümünü, öğretmenimizin de branşını değişken olarak atayalım.
Yukarıda öğrencimiz ve öğretmenimiz, kişi sınıfımıza bağlı lakin iki sınıfımızın da kendine has özellikleri var.
Burada kafamızı karıştırabilecek olan şey init bloğu, init bloğu sınıftan nesne oluşturulduğunda çağırılır ve içindeki kod bloğu çalışır.
Fonksiyonu çalıştırdığımızda göreceğimiz çıktımız aşağıdaki gibidir:
Override
Kalıtımda alt sınıf, üst sınıftan aldığı veriyi değiştirip üzerine başka bir değer yazabilir. Örneğin çocuklar genelde yaşlarının hep 1 fazlasını söylerler. Cocuk sınıfı oluşturup bu sınıfı Kisi sınıfına bağladığımızda, Kisi sınıfından aldığımız yas fonksiyonunu override anahtar kelimesiyle 1 yaş fazlasını yazdırabiliriz.
Burada fonksiyona 7 değeri girdiğimizde çıktıda 8 değerini görüyoruz:
Sonuç
Sonuç olarak kalıtımda bir çok sınıfı birbirine bağlayabilir ve hepsine kendine özgü özellik ekleyebiliriz ama unutmamakta fayda var her alt sınıf üst sınıfın özelliğini taşımak zorundadır. Üst sınıflardan alt sınıflara geçen özellikler override edilip değiştirilebilir ve alt sınıfın kendine has özelliğine çevrilebilir.
Okuduğunuz için teşekkür eder, iyi günler dilerim.