OOP ile ilgili yazılarıma devam ediyorum arkadaşlar.Bu yazımda miras alma konusundan bahsedicem.Örnek olarak Kangal köpeklerini ele alalım.Kangal bir köpektir.Köpek bir hayvandır.hayvanlarda canlıdır.Arada omurgalı hayvanlar omurgasız hayvanlar diyede ayrılabilir ama o kadar detaya girmiycem.Her canlının bir ismi vardır.her hayvan hareket eder.her köpek 4 ayak üstünde yürür.Buraya kadar geldiğimizde hepsini köpek üstünde birleştirebiliriz.Sonrada Kangal köpeğinin Koruma özelliğini ekleyebiliriz. Eğer böyle yapmazsak boş vere fazladan kod yazmış oluruz.Şöyle düşünün hayvandan sonra kedilerin geldiğini ve kedilerden sonrada Van kedisinin geldiğini.Neden tekrar tekrar özellikleri yazayımki.Daha alt bir katmandan miras alırım ve özellikleri üstüne inşa ederim.Yine gerçek hayatı kodlarımıza dökelim ve temel bir katmandan başlayalım.
İlk Olarak Hayvan katmanını temel aldım.
public class Hayvan
{
public bool _Cinsiyet;
}
Bir hayvan Class'ım var ve Hayvan tipinde bir Obje yarattım.Her hayvanın bir cinsiyeti vardır ve bool tipinde tutucam bu cinsiyeti.
public class Kopek : Hayvan//Burada miras alma işlemi iki nokta ve miras alınıcak class olarak gerçekleşiyor
{
public string _ad;
private void NefesAl()
{
MessageBox.Show("Nefes Aldım");
}
private void NefesVer()
{
MessageBox.Show("Nefes Verdim");
}
public void Havla()
{
NefesAl();
MessageBox.Show("Hav Hav");
NefesVer();
}
}
Kopek objemizide yarattık ve Hayvan'dan miras aldık şimdi resime bakalım
Kopek classımızda _ad isminde bir field tanımlamamıştık ama kopek objesi hayvandan miras aldığı için artık köpek nesnesindede cinsiyet fieldı görülebilmekte.Burda yaptığım tekrar yazmamak oldu.Burda 3 tanede methot tanımladım arkadaşlar bunlar NefesAl , NefesVer ve Havla methotları C#'da OOP - 2 Encapsulation konusunda fieldları kapsüllemiştik burdada erişim belirleyici olarak NefesAl ve NefesVer methotlarını private tanımladım.Yani burda yaptığım işlem Methot Encapsulation işlemi oldu.Dışarıdan Havla methodunu çalıştırdığımda önce nefes alıcak sonra havlıycak ardından da nefes vericek.Şimdi bir adım daha üst katmana geçelim.Kangal köpeğinin en bilindik özelliklerinden biri korumacı yapısıdır.Çobanların yoldaşıdır Kangallar.Kodlara dönersek bu sefer hayvan sınıfından değilde kopek sınıfından miras alıcak Kangal.
class Kangal: Kopek
{
public void SuruyuKoru()
{
MessageBox.Show("Koruyorum");
}
}
Kangalın SuruyuKoru methotunuda yazdıktan sonra arkadaşlar miras alma işlemim tamamlanıyor.
Kangal kng = new Kangal();
kng._ad = "Karabaş";
kng._Cinsiyet = true; // erkek olursa true dişi olursa false die düşündüm.
kng.Havla();
kng.SuruyuKoru();
Yukardaki örnekte bir Kangal yarattık ve miras aldığı özelliklerle beraber kangalı biçimlendirdik.Miras alma ile ilgili anlatabileceğim bu kadar arkadaşlar okuduğunuz için teşekkürler.
Teşekkürler.
YanıtlaSilTeşekkürler.
YanıtlaSil