MeslekForum Mesleki Gelişim Forumu

Go Back   MeslekForum Mesleki Gelişim Forumu > Bilgisayar Yazılım Donanım > Programlama > C#

Cevapla
 
LinkBack Seçenekler Stil
Alt 12-10-2009, 23:04   #1 (permalink)
Kullanıcı Profili
SITE ADMİN
Taner - ait Kullanıcı Resmi (Avatar)
Kullanıcı Bilgileri
Üyelik Tarihi: Oct 2009
Üye No : 2
Mesajlar: 94
Standart Kalıtım (Miras alma - Inheritance) Nedir ?

Kalıtım nesne tabanlı programlamanın üç temel ögesinin en önemlisidir. Çünkü,
kalıtım hiyerarşik sınıflandırma oluşturmayı sağlar. Konuyu biraz açmak gerekirse birbiriyle
bağlantılı bir grup elemanın ortak özelliklerinden oluşan bir sınıf oluşturulabilir. Bu sınıf
daha sonra yeni değişiklikler yapılarak daha özel sınıflara kalıtım yoluyla aktarılır ve her
sınıf kendisinde bulunan ek özellikleri buna aktarır. Böylece uygulamanın yeni baştan
yazılmasına gerek kalmaz.
Nesne tabanlı programlamada kalıtım yoluyla aktarılan sınıf, Temel sınıf’tır. Kalıtım
işlemi yapılmış olan sınıf da oluşturulmuş (türetilmiş) sınıftır. Türetilmiş sınıf, temel sınıf
tarafından tanımlanan tüm metot, özellik, operatör ve değişkenleri kalıtım yoluyla elde eder
ve sadece kendisinde kullanılacak özellikleri, değişkenleri, metotları vb.yi kendisine ekler.

Kalıtımın kullanım şekli şöyledir:

Kod:
Namespace Kalıtım
{
class Temel Sınıf
{
// Program Kodları
}
class Mirasçı Sınıf : Temel Sınıf
{
//Eklenecek metotlar
}
}
Bir sınıf diğer bir sınıfı kalıtım yoluyla elde ettiğinde temel sınıfın ismi, türetilmiş
sınıfın ismini takip eder ve birbirlerinden : (iki nokta) ile ayrılır. : operatörü bir sınıfın, başka
bir sınıfın özelliklerini devralmasını sağlar.

Örnek



Tablo 3.1: Kalıtımsal gösterim ( Sarı renktekiler temel sınıf, tümü ise türeyen sınıftır.)

Yeni oluşturulmuş her sınıf için sadece bir temel sınıf belirtilir. Tek bir türetilmiş
sınıfa birden fazla sınıf kalıtım yoluyla aktarılamaz.
Türetilmiş olan bir sınıf başka bir türetilmiş sınıfın temel sınıfı olabilir.
Kalıtımın avantajı, temel sınıf oluşturulduktan sonra istenilen sayıda türetilmiş sınıf
oluşturmaktır.

Örnek

Temel sınıfla türeyen sınıfın çalışma mantığı aşağıdaki gibidir.



Programda bir ana sınıf ve ana sınıftan türeyen bir mirascı sınıf olmak üzere iki sınıf
oluşturulmaktadır. Program satır satır işletildiğinde, Main() metodunda mirasci adında bir
üye değişken oluşturulur ve Mirasci_Sinif() metoduna yönlendirilir. Mirasçı sınıf ta ana
sınıftan türetildiği için program akışı Ana_Sinif() metoduna geçer. Ana_Sinif() metodunda
mesaj yazdırıldıktan sonra mirasçı sınıftaki mesaj yazdırılır. Main() metodundaki
“mirasci.yazdir();” satırıyla program akışı ana sınıftaki yazdır metoduna yönlendirilerek bu
metottaki mesaj yazdırılarak işlem sona erer.

Bu aşamaların sonunda çalıştırılan kodların ekran görüntüsü resim 3.2’deki gibi
olacaktır.


Resim 3.2: Kalıtımın çalışma mantığının ekran görüntüsü

Kalıtımla ilgili bir başka örnek vermek gerekirse; aşağıdaki örneği inceleyiniz.



Programda yine bir ana sınıf ve ana sınıftan türeyen bir mirasçı sınıf olmak üzere iki
sınıf oluşturulmaktadır. Main() metodunda “mirasci” adında türeyen sınıfa ait bir üye
değişken oluşturulmakta ve program akışı Mirasci_Sinif() metoduna yönlendirilmektedir.
Mirasci_Sinif() metodunda kullanılan base komutuyla string bir ifade mirasçı sınıf
işletilmeden ana sınıfa gönderilmekte ve ana sınıfta bir değişkenle bu ifade karşılanmaktadır.
Karşılanan bu ifade Ana_Sinif() metodunda yazdırıldıktan sonra program akışı
Mirasci_Sinif() metoduna dönmekte ve bu sınıftaki mesajın yazdırılması gerçekleşmektedir.
Yazdır metodu her iki sınıfta kullanılmaktadır. Mirasçı sınıftaki yazdır metodunun new ile
tanımlandığına dikkat ediniz. Böylece her iki yazdır metodu birbirinden ayrılmaktadır.
“mirasci.yazdir()” satırıyla program akışı new ile tanımlanan yazdır metoduna yönlendirilir.
Bu metodun ilk satırında bulunan “base.yazdir();” komut satırıyla da ana sınıf içinde bulunan
yazdır metodunu çalıştırır. Ana sınıftaki yazdır metodunda bulunan mesaj yazdırıldıktan
sonra program akışı “base.yazdir();” satırından sonraki satıra geçer ve new ile yeniden
tanımlanan yazdır metodundaki mesajı yazar. “((Ana_Sinif)mirasci).yazdir();” satırıyla
oluşturulan “mirasci” üye değişkeni kullanılarak ana sınıfın yazdır metoduna program
yönlendirilir ve bu metottaki mesaj yazdırılmış olur.
Verilen bu örnekle türetilmiş bir sınıfın ana sınıfla iletişimi gösterilmektedir.

Kod satırları derlenip çalıştırıldığında ekran görüntüsü resim 3.3’te görüldüğü gibi
olur.


Resim 3.3: Türetilmiş sınıf ile ana sınıfın iletişimi örneği

Kaynak : MEGEP | Nesne Tabanlı Programlama 3
__________________
Beni Sevmek İçin Programlanma Devrelerini Yakarım !
Taner isimli Üye şimdilik offline konumundadır  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl this Post!Reddit! Wong this Post!
Alıntı ile Cevapla
Cevapla

Seçenekler
Stil

Yetkileriniz
Konu Acma Yetkiniz Yok
Cevap Yazma Yetkiniz Yok
Eklenti Yükleme Yetkiniz Yok
Mesajınızı Değiştirme Yetkiniz Yok

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-Kodu Kapalı
Trackbacks are Açık
Pingbacks are Açık
Refbacks are Açık


Benzer Konular
Konu Konuyu Başlatan Forum Cevaplar Son Mesaj
Kalıtım (Inheritance) Nedir ? Taner Programlama 0 12-08-2009 00:48


Tüm Zamanlar GMT +3 Olarak Ayarlanmış. Şuanki Zaman: 17:02.


Powered by vBulletin
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.3.2

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30