Polymorphism I (Multiple Components—Single Interface)
The term polymorphism refers to many different things in object-oriented lingo. One aspect of polymorphism is that two classes may share a single interface but implement the methods in the interface slightly differently. To illustrate this meaning of polymorphism, let’s suppose we add a CSavings class to the project:
' Class CSavings Option Explicit Implements IAccount Private m_cBalance As Currency Private m_dInterest As Double Private Property Get IAccount_Balance( ) As Currency IAccount_Balance = m_cBalance End Property Private Sub IAccount_MakeDeposit(ByVal Amount As Currency) m_cBalance = m_cBalance + Amount + (Amount * m_dInterest) End Sub
Notice that the preceding code is very similar to that of the
CChecking class, except that the MakeDeposit subroutine actually adds
some interest to the Amount
sent it (this
is a very good savings account). This shows that the definition of
the interface tells the implementer nothing about how the code for
the function is to be written. Each class may have a different
interpretation of the MakeDeposit routine. (Later, you will see that
this is especially good for polymorphism.) The only requirement is
that they have similar semantics—in other words, that the two
implementations do roughly the same thing with slight variations;
MakeDeposit in CSavings does not remove money from an account, for
example.
At this point, our project has two implementation classes, CChecking and CSavings, and ...
Get COM+ Programming with Visual Basic now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.