CodeBlanks Logo Icon CodeBlanks

base anahtar kelimesi

C# kursu · Orta seviye · Ders 14/116

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

  1. base çağrısını tamamla

    public SavingsAccount(string owner) : ____(owner) { }
    Cevabı göster
    public SavingsAccount(string owner) : base(owner) { }
  2. Ç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.

  3. 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

Orta seviye bölümündeki tüm dersler