C#
base anahtar kelimesi
base ile üst sınıfın yapıcısını ve metotlarını çağırmayı öğrenirsin.
base anahtar kelimesi
base anahtar kelimesi, türetilmiş sınıftan temel sınıfın üyelerine erişmeyi sağlar. En sık kullanımı, temel sınıfın yapıcısını çağırmaktır: public SavingsAccount(string owner) : base(owner) { ... }.
Burada : base(owner), Account sınıfının owner parametreli yapıcısına önce çağrı yapar. Böylece temel sınıfın yapıcısı çalışmadan türetilmiş sınıfın gövdesi çalışmaz. base aynı zamanda temel sınıfın metot ve alanlarına erişmek için de kullanılır.
base() ile temel yapıcı
Temel sınıfın parametreli yapıcısı varsa, türetilmiş sınıf bunu açıkça çağırmalıdır. : base(...) ifadesi gövdeden önce yazılır. Aksi halde derleyici parametresiz bir temel yapıcı arar; bulamazsa hata verir.
Çalışma sırası: önce temel sınıf yapıcısı tamamen biter, sonra türetilmiş sınıfın gövdesi çalışır. Bu, temel sınıfın önce hazırlanmasını sağlar; türetilmiş sınıf temel sınıfın üyelerine güvenle erişebilir.
Uygulama SavingsAccount sınıfını base ile tanımla
Aşağıda Account temel sınıfı veriliyor (yapıcısı public Account(string owner), Owner özelliğine atar). SavingsAccount türetilmiş sınıfını tanımla: yapıcısı public SavingsAccount(string owner) : base(owner) olsun ve içine public decimal Balance { get; set; } ekle. Main içinde new SavingsAccount("Ayşe") ile örnek oluştur ve Owner'ı yazdır.
Örnek çözümü göster
Account tanımla. Yapıcı : base(owner) ile başlasın. Main içine SavingsAccount s = new SavingsAccount("Ayşe"); Console.WriteLine(s.Owner); yaz.
Örnek çözüm:
using System;
class Account
{
public string Owner { get; set; }
public Account(string owner)
{
Owner = owner;
}
}
class SavingsAccount : Account
{
public decimal Balance { get; set; }
public SavingsAccount(string owner) : base(owner)
{
}
}
class Program
{
static void Main()
{
SavingsAccount s = new SavingsAccount("Ayşe");
Console.WriteLine(s.Owner);
}
}
Kendini test et
-
base çağrısını tamamla
public SavingsAccount(string owner) : ____(owner) { }
Cevabı göster
public SavingsAccount(string owner) : base(owner) { }
-
Çalışma sırası nasıldır?
public SavingsAccount(string o) : base(o) { ... }
- Önce türetilmiş gövde, sonra temel
- Önce temel yapıcı, sonra türetilmiş gövde
- Yalnızca türetilmiş
- Yalnızca temel
Cevabı göster
Önce temel yapıcı, sonra türetilmiş gövde — Doğru. Temel sınıf önce, türetilmiş sınıf sonra çalışır.
-
base kullanımını amacına eşle
- : base(owner)
- Temel yapıcıyı çağırır
- base.Method()
- Temel metodu çağırır
- base
- Temel sınıf
- owner
- Aktarılan argüman
Sıradaki ders: virtual ve override