Nesne yönelimli programlamanın temelini oluşturan yapı kalıtımdır.
Günlük hayattan bir örnek ile konuyu kavramaya çalışalım.

Benim maddi durumum çok iyi, arkadaşımın ise çok kötü. Benim servetimle yapabileceklerime bir bakalım:
1. Yardımsever biriyim ve servetimin bir bölümünü insanlara yardım için kullanıyorum.
2. Arkadaşım ile beraber bir iş kuruyoruz ve işte kullanması için servetimin bir bölümünü ona ayırıyorum.
3. Cimri biriyim ve kimseyle maddi paylaşımda bulunmuyorum.

Peki benim maddi durumun programlamayla bağlantısı nasıldır?

Benim bir class’ım var ve içinde tanımladığım fonksiyon, prosedür, property ve değişkenler var. Bu elemanlardan;
1. İstediğim kadarını herkesle, yani başka sınıflarla paylaşabilirim.
2. İstediğim kadarını sadece ortağımın kullanmasına izin verebilirim, yani başka bir sınıf tarafından ulaşılmasına izin verebilirim.
3. İstediğim kadarını başkalarından saklayabilirim, yani elemanlardan istediklerimin hiçbir sınıf tarafından görünmesini engelleyebilirim.

Peki bunları kodlarla nasıl göstereceğiz?
Bir adet Windows Application oluşturalım ve projeye yeni bir class ekleyelim. Class’ın adı MirasYedi olsun. Aynı dosya içerisinde MirasSahibi isminde başka bir sınıf oluşturalım. Bu sınıf içerisinde bir adet public prosedür ve bir adet private değişken oluşturalım ve MirasYedi class’ına MirasSahibi class’ının kalıtımını verelim (MirasYedi : MirasSahibi)

class MirasYedi : MirasSahibi
{

}
class MirasSahibi
{
        private string ad = “Veysel Uğur KIZMAZ”;
        public void AdGoster()
{
System.Windows.Forms.MessageBox.Show(this.ad);
}
}

Bu sınıfları nasıl kullanabiliriz?

csharpta-kalitim-1

csharpta-kalitim-1

MirasSahibi sınıfı türünden bir yavru değişken oluşturdum ve bu değişken üzerinden AdGoster isimli prosedüre ulaşabiliyorum.
Şimdi MirasYedi sınıfı türünden bir yavru değişken oluşturalım ve nelere ulaşabiliyoruz görelim:

csharpta-kalitim-2

csharpta-kalitim-2

MirasYedi türünden oluşturduğum yavru değişken ile MirasSahibi sınıfında bulunan AdGoster prosedürüne ulaşabiliyorum. Yani MirasSahibi sınıfından kalıtım alarak public tanımlı AdGoster prosedürünü MirasYedi sınıfından da erişebildim.

Kodlarımızı tamamladığımızda her iki kodun da ekranda “Veysel Uğur KIZMAZ” mesajını göstereceğini göreceğiz.