Object Oriented Programming Abstract Class / Method Ders 7

Object Oriented Programming Abstract Class / Method Ders 7

Merhaba,

Bu yazımızda yine karışık olarak algılanan akıllarda genelde soru işaretleri bırakan bir OOP yapısını inceleyeceğiz. Konumuz Abstract Class lar. Açıkçası ben bu konunun neresinin karışık olduğunu tam anlayamadığımdan bildiğim gibi sade bir dille sizlere aktaracağım.

Abstract Class ları temel  olarak bir şablon gibi düşünebiliriz. İleride oluşturacağımız class lara temel teşkil edecek bir nevi haritalama gibi. Bunu neden böyle anlatıyorum hemen açıklıyım.

Abstract Class lar main classlardır. Bu classlar üzerinden kalıtım yapılması amacı ile tasarlanmaktadır ve alt sınıfların genel özelliklerini içlerinde barındırmaları ile tanınırlar. Ancak bir abstract class tan nesne türetilemez. Az önce belirttiğim gibi sadece kalıtım yolu ile aktarım sağlanabilir.

Birde Abstract Methodlar vardır. Bir Abstract Method sadece ve sadece bir Abstract Classın içerisinde tanımalanabilir. Bu methodlar da kalıtım yolu ile aktarıldıklarından private tanımlama yapılamaz. Abstract methodlarda gövde olmaz. Yani methodun içeriği boştur. Kalıtım esnasında bu methodlar override edilir ve istenen yapı düzenlenir.

Gördüğünüz üzere 145 kelime ile ana yapının kurallarını özetledik. Peki biz neden bunu kullanalım ya da abstract class kullanmamız gerektiği zamanı nereden anlayacağız. Aslında çok basit bir örnekle bunu açıklayabilirim. Hatta sonrasında kodunuda beraber yazalım.

Bir alışveriş mağazası düşünün. İçerisinde elektronik eşyadan, kuruyemişe kadar herşey var. Bunların fiyatlarını ve kdv oranlarını düşündüğümüzde birbirinden farklı kdv oranları olduğunu göreceğiz. Bu durumda Abstract Class ve Method imdadımıza koşmaktadır.

Çok basit yapıda bir Abstract Class oluşturalım.

Bir adet urunFiyati property’m J bir adette fiyatDon adında diyat dönüşü yapacak methodum var. Gördüğünüz üzere methodun içi boş değil. İçi yok J

Şimdi kalıtılacak olan classlarımı oluşturayım.

Gördüğünüz üzere kuru üzüm adında bir class oluşturdum. Bu classı ürünler classından kalıttım. Kalıtım sayesinde fiyatdon methoduda aktarıldı. Polymorphism bölümünde gördüğümüz gibi methodu override yaptık. Artık methodumuz kuruuzum kdv oranı olan 1.1 katsayısı ile fiyatı çarparak bizde double bir değer döndürüyor.

Şimdi birde bilgisayar classını kalıtalım.

Gördüğünüz üzere bu classımızda fiyat özelliğinin değerini 1.18 ile çarpıp bize double bir değer döndürüyor.

Şimdi formumuzun load event inin içerisine girelim.

Kuruuzum classından ku adında bir nesne oluşturdum. Bu nesnenin FiyatDon methodunu çalıştırdığımda bana 1.01 ile çarpılmış fiyatı döndürmektedir.

İşte o kadar karışık sanılan Abstract Class ve Method yapısı aslında bu kadar basit.

Bir sonraki yazımda Interface yapısını inceyeceğim.

İyi Günler Dilerim,