Abstract Class

      Yorum yok Abstract Class

Abstract class’lar bir çok özelliği ve kullanımı ile interface’e benziyor. Interface’de tanımladığımız property ve metotları n hepsini kullanabilirim diye düşünerek eklemek esastı.  Abstract classların farkı ise içinde tanımladığımız property ve alanları zaten kullanacağız diye tanımlamak zorunda kalmıyoruz fakat abstract olarak tanımladıklarımızı kalıtım alan class’da override ederek yani ezerek o class’a göre bir kullanım şekli oluşturuyoruz.

Abstract class’ların özellikleri şu şekildedir;

  • Propertyler için  Acces Modifiers(Erişim Belirleyicileri) kullanabiliriz.
  • Metotlar için ise Private olarak tanımlama yapamayız.
  • Abstract Classlardan kalıtım alan sınıflarda abstract metotlar override edilerek kullanılırlar.
  • Abstrac Classların Instance’ı alınmaz (yani türetilemez (Örnek:Nesne isim = new Nesne() şeklinde kullanılmaz.))

Abstract class’ların kullanımına dair bir örnek ile yazımıza devam edelim;

Oluşturduğumuz proje içinde Canlı isminde bir class oluşturduk, yaşı ve cinsiyeti tüm canlılarda ortak olabilecek özellikler olduğundan burada tanımladık. Her canlı bir mesaj verecek bunun için mesaj isimli bir metot tanımladık, birde her hayvanın kendine özgü bir seslenme şekli olduğundan nida isminde bir abstract metot tanımladık kullanımını ise diğer adımlarda göreceğiz.

 

şimdi de Kedi isimli bir class oluşturup ve içine adi propertysi ekliyoruz. ve kalıtım almak için  class isminin sağına ” : “koyup  kalıtım alacağımız canlı classını yazıyoruz. Sonra abstract metodumuzu ister ctrl+. ile ister elle yazarak inheritance ediyoruz.  fakat abstract yerine override yazıyoruz ve override ettiğimiz metotdan kedinin  miyavlamasını döndürüyoruz.

Şimdi son olarak main metot içine aşağıdaki gibi kedi class’ından instance alıp tanımlamalarını yapıyoruz.

Bu durumda ekran çıktısı ise aşağıdaki gibi olacaktır.

Konu ile ilgili uygulamayı burdan edinebilirsiniz.

 

 

Bir Cevap Yazın

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