Public MustInherit Class Account
Private Name As String
Protected Balance As Double
Public Sub New(ByVal Nm As String, ByVal Bal As Double)
Name = Nm
Balance = Bal
End Sub
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()
MessageBox.Show("name " & Name & "Money " & Balance)
End Sub
Public Sub ChangeName(ByVal newName As String)
Name = newName
End Sub
Public MustOverride Function CalculateBankcharge() As Double
End Class
-----------------------------------------------------------------------------------------------
Public Class SavingsAccount
Inherits Account
Private MinBalance As Double
Public Sub New(ByVal Nm As String, ByVal Bal As Double, ByVal Min As Double)
MyBase.new(Nm, Bal)
MinBalance = Min
End Sub
Public Overrides Sub Debit(ByVal Amount As Double)
If Amount <= Balance Then
MyBase.Debit(Amount)
End If
End Sub
Public Overrides Sub Display()
MyBase.Display()
MessageBox.Show("give me 5,beacouse :" & MinBalance & "less")
End Sub
Public Overrides Function CalculateBankcharge() As Double
If balance < MinBalance Then
Return 5.0
Else
Return 0.0
End If
End Function
End Class
-------------------------------------------------------------------------------------------------------------
Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
Dim sa As New SavingsAccount("me", 100.0, 25)
sa.Display()
sa.Credit(100)
sa.Debit(180)
sa.ChangeName("zhang lei")
sa.Display()
MessageBox.Show(sa.CalculateBankcharge())
End Sub
本文通过一个具体的示例展示了面向对象编程中继承与多态的概念。示例中定义了一个基本的Account类,并在此基础上创建了SavingsAccount子类,实现了特定的方法覆盖,如余额扣减、显示账户信息及计算银行费用等。
380

被折叠的 条评论
为什么被折叠?



