Serkan Ayyıldız

Meraklı bir yazılım uzmanı...

Visual Basic.Net Override ile Metot-Fonksiyon Yönetimi

Visual Basic.Net sever yazılımcılara yeniden selamlar olsun :)

Son birkaç makalemizde VB.Net konusunda nesne yönelimli programlama (oop) derslerini öğreniyoruz ve bugün ise OOP'nin olmazsa olmazlarından biri olan virtual-override konusunu öğreneceğiz.

Aslına bakarsanız C# programlama dili virtual-override sözcüklerini kullanırken aynı konu Visual Basic'te overrideble - overrides olarak karşımıza çıkıyor.

Override sözcüğüyle dersimize başlarsak bu sözcüğü tam olarak Türkçe'ye yazılım dilinde çevirmekte zorlanıyoruz ancak aklımızın bi köşesinde "daha sonra değiştirilebilir veya yeniden yapılandırılabilir" gibi ifade edersek daha sağlıklı olur diye düşünüyorum.

Teknik boyuta geçersek; bir sınıf içerisinde yer alan bir metodu kendisinden kalıtım alan sınıf içerisinde aynen olduğu gibi kullanabiliyoruz ve böyle bi durumda metot kaç kez kalıtım alınırsa alınsın hep en temel kalıtım veren sınıftaki haliyle çalışır.

Buradan anlıyoruz ki kalıtım veren bir sınıfın içindeki metot hep aynı işi yapar ancak biz yazılımcılar için gerçek dünya koşullarında projelerimizde mümkün olabildiğince çok esnek davranmak zorunda olduğumuz için override (yeniden yapılandırma) konusuna ihtiyaç duyabiliriz.

Şöyle ki; "Personel" ismindeki "Calis" isimli metot "her işi yaparım" mesajını veriyorsa,personel sınıfından kalıtım alan "Muhasebeci" isimli sınıfımızın "Calis" metodu her işi yapmaktan ziyade "gelir-gider hesaplarım" mesajını vermeli.
Metot isimleri aynı ama nasıl farklı tepkiler verecek diye aklımıza gelen soruyu override deyimi cevap veriyor.
İşte böyle durumlar için Visual Basic.Net'te "overrideble" (yeniden yapılandırılabilir) deyimini kullanıyoruz.

Yukarıdaki örneği hayata geçirmek için Visual Studio'yu açıyor ve VB.Net dilinde yeni bir windows form projesi oluşturduktan sonra projemize aşağıdaki gibi "Personel" adında bir class oluşturuyoruz:

vbnet-class

Oluşturduğumuz class içerisine overrideble olarak işaretlediğimiz bir metot ekliyoruz:

vbnet-override-metot

Yazdığımız bu metodu alt bir sınıfta yeniden kullanabilmek ancak yapacağı işi değiştirmek için overrideble olarak belirttik,eğer bir Visual Basic metodunu kendisinden kalıtım alındığı esnasında içeriğinin değiştirilebilmesini engellemek isteseydik overrideble sözcüğünü kullanmazdık.

Zaten bir metoda overrideble etiketi vermezsek varsayılan olarak not-overrideble (yeniden yapılandırılamaz)
halini alır.

Şimdi ise Personel sınıfından kalıtım (inheritance) alan "Muhasebeci" isminde bir sınıf oluşturalım:

visual-basic-kalitim

Oluşturduğumuz "Muhasebeci" sınıfı içinde overrides sözcüğünü yazmaya başladığımızda Visual Studio'nun intellisense özelliği bize kalıtım veren sınıfta (personel classı) override işaretli metotların listesini getiriyor:

vbnet-override

Elbette .Net Framework mimarisi kendi içerisinde temel override metotlar barındırdığı için başka seçeneklerde mevcut ancak konumuz bu değil, override edeceğimiz metodumuzu seçtiğimizde aşağıdaki gibi bir kod satırı oluşturuluyor:

visual-basic-override

Bunun anlamı base (kalıtım veren) sınıfımız içindeki metodu aynen çalıştır demektir ancak biz personel sınıfı içindeki metodu aynen çalıştırmaktan ziyade metoda yeniden yön vererek farklı bir işlev kazandırmaya çalışacağız.O yüzden metodumuzun içerisini değiştiriyoruz:

vbnet-virtual-override

Override sözcüğünün karşılığı C# 'da "virtual" (sanal) olarak geçerken "overrides" sözcüğü ise "override" olarak geçmektedir,eğer C#.Net programlama dili bilmiyorsanız bu cümleyi yoksayın ve boşuna kafanızı karıştırmayın :)

Windows formumuza dönelim ve formumuzun load eventine öncelikle personel sınıfından instance (örnek kopya) alarak "Calis" isimli metodumuzun verdiği tepkiyi görelim:

visual-basic-virtual

Şimdi ise "Muhasebeci" isimli class içindeki "Calis" metodumuzun verdiği tepkiyi görelim:

vbnet-override-fonksiyon

Gördüğünüz gibi aynı isimlerde ancak farklı sınıflarda yer alan metodumuz kalıtım alınan yere göre daha esnek tepkime veriyor ve bu sayede yazılımcıların işlerini oldukça kolaylaştırmaktadır.

Object Orianted Programming için özel bir yeri olan override tekniğini kullanabilmek için 3 önemli kuralımız var;

1- Override edilecek metot mutlaka overrideble olarak işaretlenmeli,
2- Overrideble işaretlenen bir metodu override edebilmek için metodun adı,dönüş tipi (int,string,void gibi) ve parametreleri bire bir aynı olmalı.
3- Overrideble olarak işaretlenen bir metodun içinde bulunduğu sınıf (kalıtım veren sınıf) mutlaka kalıtım vermeye uygun olmalıdır.

Override kurallarını öğrendiğimize göre böylece makalemizin sonuna gelmiş bulunmaktayız.

Yazığım bütün makalelerimin yazılım,veritabanı ve web tasarım meraklısı yazılımcı arkadaşlarıma faydalı olmasını diler, bir sonraki makalemizde görüşmek üzere hoşçakalın derim :)




Bir yorum bırak E-posta adresiniz yayınlanmayacaktır.

Menu