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.
Bu makalede, devralma Microsoft Visual Basic 2005 veya Microsoft Visual Basic. NET'te nasıl kullanacağınızı öğreneceksiniz. 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çmeli üyeleri geçersiz kılmak ve bu tür bir hesap için yeni üyeler eklemek.
Microsoft Visual Studio 2005 veya Microsoft Visual Studio. NET'i başlatın ve yerel bilgisayarınızda UseInheritance adlı yeni bir Visual Basic konsol uygulaması projesi oluşturun.
Proje) menüsünde Add Class ' ı tıklatın.
Yeni Öğe Ekle iletişim kutusunda <a0>adı</a0> alanındaki Account.vb yazın. Aç ' ı tıklatın.
Private Name As String ' Only accessible in base class
Protected Balance As Double ' Accessible in base class and derived class
Bu alanları'nı başlatmak için bir kurucu ekleyin:
Public Sub New(ByVal Nm As String, ByVal Bal As Double)
Name = Nm
Balance = Bal
End Sub
Aşağıdaki yöntem, sınıfa ekleyin. Bu yöntemler, türetilmiş sınıfları kılınabilir Overridable anahtar anlamına gelir:
Public Overridable Sub Credit(ByVal Amount As Double)
Balance += Amount
End Sub
Public Overridable Sub Debit(ByVal Amount As Double)
Balance -= Amount
End Sub
Public Overridable Sub Display()
Console.WriteLine("Name=" & Name & ", " & "Balance=" & Balance)
End Sub
Aşağıdaki yöntem, sınıfa ekleyin. Bu yöntem Overridable ' 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 Sub ChangeName(ByVal newName As String)
Name = newName
End Sub
Aşağıdaki yöntem, sınıfa ekleyin. Bu yöntem türetilmiş sınıfları geçersiz MustOverride anahtar anlamına gelir:
Public MustOverride Function CalculateBankCharge() As Double
<a1>Hesap</a1> (ınherits anahtar yeni bir satırda görünmelidir unutmayın) SavingsAccount devraldığı SavingsAccount sınıf tanımı aşağıdaki gibi değiştirin, böylece:
Public Class SavingsAccount
Inherits Account
End Class
Private MinBalance As Double ' If the balance drops below MinBalance,
' the bank will charge a fee on the account
Bir kurucu taban sınıftaki ve bu sınıftaki alanları'nı başlatmak için aşağıdaki şekilde ekleyin:
Public Sub New(ByVal Nm As String, _
ByVal Bal As Double, _
ByVal Min As Double)
MyBase.New(Nm, Bal) ' Call base-class constructor first
MinBalance = Min ' Then initialize fields in this class
End Sub
Aşağıdaki yöntemlerden SavingsAccount sınıfına ekleyin. Bu yöntemler temel sınıfından devralınan Overridable yöntemleri geçersiz kılmak:
Public Overrides Sub Debit(Amount As Double)
If Amount <= Balance Then ' Use balance, inherited from base class
MyBase.Debit(Amount) ' Call Debit, inherited from base class
End If
End Sub
Public Overrides Sub Display()
MyBase.Display() ' Call Display, inherited from base class
Console.WriteLine("$5 charge if balance goes below $" & MinBalance)
End Sub
Tüm temel sınıf MustOverride yöntemleri geçersiz kılmak gerekir. Aşağıdaki yöntem SavingsAccount sınıfına ekleyin:
Public Overrides Function CalculateBankCharge() As Double
If Balance < MinBalance Then
Return 5.0
Else
Return 0.0
End If
End Function
Hata Ayıkla menüsünden uygulamayı çalıştırmak için Debugging Başlat'ı tıklatın. 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
Uygulamayı yeniden çalıştırın, ancak bu kez hata ayıklayıcıyı kullanın. Main yöntemi başında kesme noktası ayarlamak ve Hata Ayıkla menüsünden Başlat ' ı seçin. Her ifadesine adım ve uygulama sırasında hangi yöntemleri olarak inceleyin.
Ö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:307222
(http://support.microsoft.com/kb/307222/en-us/
)
Bu makaleyi kullanabilmek için kişisel olarak ne kadar çaba harcadınız?
Çok az
Az
Ne Az, Ne Fazla
Fazla
Çok fazla
Bu bilgiyi geliştirmek için ne yapabiliriz?
Gizliliğinizi korumak için, irtibat bilgilerinizi görüşlerinize eklemeyin.
Teşekkür ederiz! Görüşleriniz, destek içeriğimizi geliştirmek amacıyla kullanılacaktır. Daha fazla yardım seçeneği için lütfen, Yardım ve Destek Ana Sayfası’nı ziyaret edin.