Makale numarası: 307205 - Son Gözden Geçirme: 01 Ağustos 2008 Cuma - Gözden geçirme: 3.0

Devralma Visual C# ile nasıl kullanılır

Sistem İpucuBu makale, kullandığınızdan farklı bir işletim sistemine yöneliktir. Sizinle ilgili olmayabilecek makale içeriği devre dışı bırakıldı.

Bu Sayfada

Hepsini aç | Hepsini kapa

Özet

Bu adım adım makalede, devralma Visual C# [NULL]'nasıl kullanılacağını gösterir.

Devralma, önemli bir nesneye dayalı kavram ' dir. Ilgili sınıf hiyerarşisini oluşturmak ve varolan sınıflar tanımlanan işlevleri yeniden kullanmaya olanak sağlar.

Aşağıdaki örneklerde, alanları ve yöntemleri için genel bir banka hesabı'nı içeren bir temel sınıf tanımlayacaktır. Sonra belirli bir banka hesabı türünü temsil eden türetilmiş bir sınıf tanımlayacaktır. Türetilmiş bir sınıf üyeleri temel sınıfından, seçili üyeleri geçersiz kılmak ve yeni tür bir hesap için yeni üyeler eklemek.

Gereksinimler

Önceki bilgi gerekli:
  • C# sözdizimi
  • Nesneye dayalı kavram

Yeni bir konsol uygulaması oluşturun.

  1. Visual Studio'yu ve UseInheritance adlı yeni C# konsol uygulaması projesi oluşturun.
  2. Projeyi kaydedin.

Bir Özet taban sınıfı oluştur

  1. Solution Explorer'da, (, Sınıf görünüm <a2>Görünüm</a2> menüsünü tıklatın, göremez,) sınıf görünüme geçin. Ekle işaret UseInheritance proje sağ tıklatın ve sınıf ' ı tıklatın.

    Not Visual C# .NET 2003 ' te Ekle işaret ve Add Class</a1>'ı tıklatın.
  2. Yeni Öğe Ekle iletişim kutusunda, bir Hesap sınıf adını yazın ve sonra Ekle ' yi tıklatın.

    Hesap sınıfı görüntülenir. Anahtar sözcüğü dikkat edin. Ortak ve soyut değiştiriciler, aşağıdakine benzer sınıfa ekleyin.
    public abstract class Account 
    {
       
    
    }

Temel sınıfı için kod yazma

  1. Kod görünümü) penceresinde, iki hesap bakiyesi ve hesap sahibi adını temsil edecek Hesap sınıfına ekleyin:
    private string name;        // Only accessible in base class
    protected double balance;   // Accessible in base class and derived class
  2. Bu alanları aşağıdaki gibi başlatılmaya kurucu değiştirin:
    public Account(string nm, double bal)
    {
       this.name = nm;
       this.balance = bal;
    
    }
  3. Aşağıdaki yöntem, sınıfa ekleyin. Bu yöntemler, türetilmiş sınıfları kılınabilir virtual anahtar sözcüğünü anlamına gelir:
    public virtual void Credit(double amount)
    {
       this.balance += amount;
    }
    
    public virtual void Debit(double amount)
    {
       this.balance -= amount;
    }
    
    public virtual void Display()
    {
       Console.WriteLine("Name={0}, balance={1}", this.name, this.balance);
    
    }
  4. Aşağıdaki yöntem, sınıfa ekleyin. Bu yöntemi sanal olarak işaretli olmadığından, türetilmiş sınıfları geçersiz kılınamaz. Bu yöntem hesap sahibinin adını değiştirme olanağı sağlar.
    public void ChangeName(string newName)
    {
       this.name = newName;
    
    }
  5. Aşağıdaki yöntem, sınıfa ekleyin. Bu yöntem türetilmiş sınıfları geçersiz Özet anahtar anlamına gelir:
    public abstract double CalculateBankCharge();

Türetilmiş bir sınıf oluşturmak.

  1. Sınıf görünüm, UseInheritance proje sağ tıklatın. Kısayol menüsünde, Ekle ' yi seçin ve sınıf ' ı tıklatın.
  2. Yeni Öğe Ekle iletişim kutusunda, SavingsAccount yazın ve sonra Ekle ' yi tıklatın.
  3. SavingsAccount sınıf kodunu görüntüleyin.
  4. Hesap SavingsAccount devralan SavingsAccount sınıf tanımı aşağıdaki gibi değiştirin, böylece:
    public class SavingsAccount : Account
    {
       
    
    }

Türetilmiş bir sınıf için kod yazma

  1. Bir alan SavingsAccount sınıfına ekleyin:
    private double minBalance;   // If the balance drops below minBalance, 
                                 // the bank will charge a fee on the account
  2. Alanlar, temel sınıf ve bu sınıfın başlatılamıyor SavingsAccount kurucusunu değiştirin:
    public SavingsAccount(string nm, double bal, double min) 
       : base(nm, bal)           // Call base-class constructor first
    {
       minBalance = min;         // Then initialize fields in this class
    
    }
  3. Aşağıdaki yöntemlerden SavingsAccount sınıfına ekleyin. Bu yöntemler temel sınıfından devralınan sanal bir yöntem geçersiz kılar:
    public override void Debit(double amount)
    {
       if (amount <= balance)    // Use balance, inherited from base class
          base.Debit(amount);    // Call Debit, inherited from base class 
    }
    public override void Display()
    {
       base.Display();          // Call Display, inherited from base class
       Console.WriteLine("$5 charge if balance goes below ${0}", minBalance);
    
    }
  4. Taban sınıfı soyut tüm yöntemleri geçersiz kılmak gerekir. Aşağıdaki yöntem SavingsAccount sınıfına ekleyin:
    public override double CalculateBankCharge()
    {
       if (balance < minBalance)
          return 5.00;
       else
          return 0.00;
    
    }

It Works doğrulayın.

  1. <a0>Kodu görüntüle</a0> penceresindeki Class1.cs görüntüleyin.
  2. Ana yönteminde bir SavingsAccount nesnesi oluşturur ve aşağıdaki gibi görüntüler:
    SavingsAccount sa = new SavingsAccount("Freda Smith", 100.00, 25);
    sa.Display();
  3. Genel yöntemler SavingsAccount veya hesap'ı çağırmak için aşağıdaki kodu ekleyin:
    sa.Credit(100);
    sa.Debit(180);
    sa.ChangeName("Freda Jones");
    sa.Display();
    Console.WriteLine("Bank charge: ${0}",  sa.CalculateBankCharge());
  4. Uygulamayı oluşturun.
  5. Main yöntemi başında kesme noktası ayarlamak ve uygulama hata ayıklayıcıda başlat. Her ifadesine adım ve uygulama sırasında hangi yöntemleri olarak inceleyin. Uygulama, konsol üzerindeki aşağıdaki bilgileri görüntüler:
    Name=Freda Smith, balance=100
    $5 charge if balance goes below $25
    Name=Freda Jones, balance=20
    $5 charge if balance goes below $25
    Bank charge: $5

Bu makaledeki bilginin uygulandığı durum:
  • Microsoft Visual C# 2008 Express Edition
  • Microsoft Visual C# 2005
  • Microsoft Visual C# .NET 2003 Standard Edition
Anahtar Kelimeler: 
kbmt kbsweptvs2008 kbhowtomaster KB307205 KbMttr
Otomatik TercümeOtomatik Tercüme
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:307205  (http://support.microsoft.com/kb/307205/en-us/ )