C# programlama dilinde çok biçimlilik (polymorphism) konusuna girmeden önce kalıtım (inheritence) ile bir baz sınıfın constructor'ını kullanırken bizi daha fazla kod yazmaktan kurtaran temel bir anahtar sözcük olan base anahtar sözcüğünün kullanımını bir örnek üzerinden görelim.
C# programlama dilinde base anahtar sözcüğü, kalıtım ile türetilmiş bir sınıfın içinden baz sınıfın (türetildiği sınıfın) özelliklerine ve metodlarına erişim için kullanılır.
Örnek 1: Baz sınıf kurucusunu çağırmak
class Araba
{
public int MotorGucu { get; set; }
public string Marka { get; set; }
public Araba (int motorgucu, string marka)
{
this.MotorGucu = MotorGucu;
this.Marka = Marka;
System.Console.WriteLine("Marka: {0}, Motor Gücü: {1}", marka, motorgucu);
}
}
class Limuzin :Araba
{
public int Uzunluk { get; set; }
public Limuzin(int motorgucu, string marka, int uzunluk) :base(motorgucu,marka)
{
this.Uzunluk = uzunluk;
System.Console.WriteLine("Uzunluk: {0}", uzunluk);
}
}
Limuzin limuzin = new Limuzin(3000, "Bentley",5);
Çıktı:
Marka: Bentley, Motor Gücü: 3000
Uzunluk: 5
Örnek 2: Baz sınıfın metod ve özelliklerine erişmek
class Araba
{
public int MotorGucu { get; set; }
public string Marka { get; set; }
public Araba (int motorgucu, string marka)
{
this.MotorGucu = motorgucu;
this.Marka = marka;
}
public virtual void OzellikleriGoster ()
{
System.Console.WriteLine("Marka: {0}", Marka);
System.Console.WriteLine("Motor Gücü: {0}", MotorGucu);
}
}
class Limuzin :Araba
{
public int Uzunluk { get; set; }
public string Segment { get; set; }
public Limuzin(int motorgucu, string marka, int uzunluk) :base(motorgucu,marka)
{
this.Uzunluk = uzunluk;
}
public override void OzellikleriGoster ()
{
base.OzellikleriGoster();
System.Console.WriteLine("Uzunluk: {0}", Uzunluk);
if (base.MotorGucu>2500)
Segment = "Exclusive";
else
Segment = "Premium";
System.Console.WriteLine("Segment: {0}", Segment);
}
}
Limuzin limuzin = new Limuzin(3000, "Bentley",5);
limuzin.OzellikleriGoster();
Çıktı:
Marka: Bentley
Motor Gücü: 3000
Uzunluk: 5
Segment: Exclusive
Önceki bazı diğer benzer yazılarım için;
bkz: C# IEnumerable Nedir?
bkz: C# ile params anahtar sözcüğü kullanımı ve örnekleri
bkz: Interface Nedir?
bkz: Programlama Dillerinde Kalıtım Nedir?
bkz: C# Virtual Metod Nedir ve Nasıl Kullanılır?
bkz: C# Override Nedir ve Nasıl Kullanılır?