Yadığınız class’larda tek bir constructure varsa sorun yok. Fakat birden fazla constructure yazdınız ve başka bir class’a kalıtım verdiniz. Yine sorun yok gibi gözükmekle beraber aslında teknik anlamda çok büyük sorun vardır. Sebebine gelince ikinci class’tan yarattığını bir değişken iki sınıfa ait constructure kodlarınıda çalıştıracaktır. İşte bu durumlarda ilk class’ta hangi constructure kodunun çalışacağını belirlemeniz önemli bir sorunu çözecektir.

Normal şartlar altında aksini belirtmezseniz ilk class’ın parametresiz olan constructure kodlarını çalıştıracaktır. Fakat bunu aşağıdaki şekilde kendiniz belirleyebilirsiniz. Lütfen dikkat ediniz.

class A
{
        string Ad;
public A()
{
            Ad = “Nihat”;
}
public A(string Deg)
{
            Ad = Deg;
}
public void Goster()
{
            MessageBox.Show(Ad);
}
}
class B:A
{
        public  B(string Deger):base(Deger)//Burası Çok Önemli       

{
//
Eğer B Class değişkeni string ve tek parametre ile oluşturulursa A sınıfının tek parametreli constructure ı çalışacak
        }
        public void Goster()
{
            base.Goster();
}
}

Şimdi yukarıdaki Class’lara dikkat edelim.

private void button1_Click(object sender, EventArgs e)
{
            B Yeni = new B(“Yüksel”);//İlk Classta tek parametreli olan constructure çalıştırıldı
Yeni.Goster();//Yüksel mesajını verir
     }

 

base komutu kullamadan bu uygulama yapılmış olsaydı “A” class’ının parametresiz olan constructure  ı işletilecek ve “Nihat” mesajını verercekti.