Java Abstract Class nedir ?

Merhaba Arkadaşlar,

Devam eden Java Programlama kursumuzdan dolayı not olarak elimizde olsun diye yazdığım yazılara devam ediyoruz. Bu yazıda Abstract Class nedir ? ne İşe yarar ? Nasıl oluşturulur ? ve Gerçek hayattan konu ile ilgili bir örnek verip konuyu anlatmış olacağız. Öncelikle ne olduğu hakkında biraz bilgi verelim.

Abstract ( Soyut) sınıflar İçerisinde en az bir tane gövdesi olmayan abstract bir metod barındıran sınıflardır. İçerisinde Abstract bir metod barındırıyorsa zaten bu sınıf da Abstract olmak zorunda oluyor.  Abstract sınıflardan nesne üretme işlemini yapamıyoruz. Örneğin : Derslerimizde verdiğimiz örneklerden olan araba sınıfını oluşturduktan sonra

şeklinde yeni nesne üretebiliyorduk. Ancak bu sınıflardan (Abstract Class) nesne üretemiyoruz. Bu sınıflardan kalıtım alıp yeni nesneler üretebiliyoruz. Peki bunu nasıl yapıyoruz ?

Personel ile ilgili bir proje yazdığımızı düşünelim. Personel adında bir class yazıyoruz . Şirketimizde Müdür’de bir personel , Hizmetli ‘de bir personel  değil mi? Bu iki personel için düşünecek olursak bunların Maaş hesaplamaları da  farklı. Peki biz Personel sınıfını oluştururken bir maas hesaplama metodu yazsaydık  yetmezmiydi ? işte burda abstract sınıfların güzelliği ortaya çıkıyor. Nasıl ?

Şöyle söyleyelim;  biz Eğer maas hesaplama metodunun gövdesini yazsaydık. İleride personel sınıfından türetilecek olan Müdür ve Hizmetli sınıfları için bu maas hesaplama metodu doğru olmayabilirdi. Çünkü Müdürün maaşınnda farklı parametreler var Hizmetli maaşında farklı parametreler var. O zaman biz Abstract sınıflarla diyoruz ki ; Arkadaş bu sınıf bir şablon olacak herkes bu metodu implement’e etmek zorunda olacak ve override edecek. Çünkü oluşturacağın nesnelerde bu metod farklı parametreler alabilir  farklı işlemler barındırabilir.  İşte temel mantık bunun üzerine kurulu.

Şimdi örnek üzerinde kodlarımızı görelim ve yazımıza son verelim. Öncelikle “Personel” adında bir Absract class oluşturalım yukarıda belirttiğim gibi gövdesini yazdığınız metodlar olabilir ancak en az 1 adet gövdesiz abstract metod bulunmak zorunda biz MaasHesapla() metodunu abstract metod olarak belirledik.

 

örneklerde görüldüğü üzere “extends” anahtar kelimesi ile kalıtım alıp abstract metodu “override” ederek bu işlemi yapmış oluyoruz. Bir sonraki yazıda görüşmek üzere…..

Bir cevap yazın

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