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.
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.
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.
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);
}
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;
}
Aşağıdaki yöntem, sınıfa ekleyin. Bu yöntem türetilmiş sınıfları geçersiz Özet anahtar anlamına gelir:
private double minBalance; // If the balance drops below minBalance,
// the bank will charge a fee on the account
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
}
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);
}
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;
}
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
Ö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/
)
Bu makaleyi kullanmak için ne kadar kişisel çaba harcadınız?
Çok az
Az
Orta
Fazla
Çok fazla
Bu bilgiyi geliştirmemiz için nedenleri ve bu konuda neler yapabileceğimizi paylaşın
Teşekkürler! Görüşleriniz, destek içeriğimizi geliştirmemize yardımcı olmak için kullanılmaktadır. Diğer yardım seçenekleri için, lütfen Yardım ve Destek Giriş Sayfasını ziyaret edin.