O'Reilly logo

Object-Oriented Programming with Visual Basic .NET by J.P. Hamilton

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

4.2. Inheritance

Once upon a time, in a dimly lit cube...

After writing CreditCard, GiftCertificate, and Check classes, a self-realization occurs: "Self, I see that I can group all of the common behavior from these classes into a base class called Payment." This realization usually happens when you start to see that many classes you work with have the same method names (meaning that they exhibit the same behavior).

This general payment class (shown in Example 4-1) might contain methods to authorize, credit, and bill for a specific amount, as well as associate the payment with an account number. The general rules of the class are that all payments are authorized first, then they are billed. A billed payment may also be credited.

Example 4-1. General Payment class
Imports System Public Class Payment Private account As String Private amount As Double Private authorized As Boolean Private billed As Boolean Public Sub New(ByVal account As String) Me.account = account authorized = False billed = False amount = 0 End Sub Protected ReadOnly Property AccountNumber( ) As String Get Return Me.account End Get End Property Public Function Authorize(ByVal amount As Double) As Boolean If authorized Then Console.WriteLine("Payment is already authorized") Else Me.amount = amount Console.WriteLine("Authorizing payment for {0:c}", _ amount) authorized = True End If Return authorized End Function Public Function Bill( ) As Boolean If authorized Then Console.WriteLine("Billing payment for {0:c}", ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required