小牛电子书 > 其他电子书 > VB2008从入门到精通(PDF格式英文版) >

第71章

VB2008从入门到精通(PDF格式英文版)-第71章

小说: VB2008从入门到精通(PDF格式英文版) 字数: 每页3500字

按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
————未阅读完?加入书签已便下次继续阅读!






              o  This is a mon problem; and most beginning Visual Basic programmers are puzzled  

                 by the overloading behavior。 



          Scenario 6: An Inheritance Tree That Overrides and Overloads 



              Class Base  

                  Public Overridable Sub Method()  

                      Console。WriteLine(〃Base。Method〃) 

                  End Sub 

              End Class 


…………………………………………………………Page 215……………………………………………………………

                          CH AP T E R   7   ■    L E AR N IN G   AB O U T   CO M P O N E N TS   AN D   C L AS S  H I E R AR C HI E S 193 



    Class Derived1 

        Inherits Base 



        Public Overrides Sub Method()  

            Console。WriteLine(〃Derived1。Method〃) 

        End Sub 

    End Class 



    Class Derived2  

        Inherits Derived1 



        Public Overloads Overridable Sub Method()  

            Console。WriteLine(〃Derived2。Method〃) 

        End Sub 

    End Class 



    Class Derived3  

        Inherits Derived2 



        Public Overrides Sub Method()  

            Console。WriteLine(〃Derived3。Method〃) 

        End Sub 

    End Class 



    Module Test  

        Public Sub Run()  

            Dim derivedCls As Derived3 = new Derived3() 

            Dim baseCls As Base = derivedCls 

            Dim derived2cls As Derived2 = derivedCls 



            ' Calls Derived3。Method 

            derivedCls。Method() 

            ' Calls Derived1。Method 

            baseCls。Method() 

            ' Calls Derived3。Method 

            derived2cls。Method() 

        End Sub 

    End Module 



    o  Keywords used: Overridable; Overrides; and Overloads。 



    o  The inheritance hierarchy is saying that Derived1。Method() overrides the behavior of  

       Base。Method()。 Derived2。Method() overloads the behavior of Derived1。Method(); while  

       establishing a new overriding base method。 Derived3。Method() overrides the behavior  

       Derived2。Method(); and not Base。Method() (very important)。 



    o  When confronted with a plex inheritance hierarchy as illustrated by scenario 6; it is  

       important that you start at the base class and work up the inheritance hierarchy。  


…………………………………………………………Page 216……………………………………………………………

194       CH AP T E R   7   ■    L E A R N IN G   AB OU T   CO M P O N E N TS   AN D  C L AS S  H I E R AR C H IE S 



          More Type…Casting Details 



          This chapter illustrated some type…casting examples。 In Visual Basic; you have two ways to  

          type cast: 



               o  A forced type cast; which can also be used on value types 



               o  A type cast that queries if a type cast is possible 



                Consider this hierarchy: 



              Class Base  

                  Public Sub Method()  

                      Console。WriteLine(〃Base。Method〃) 

                  End Sub 

              End Class 



              Class Derived  

                  Inherits Base 



                  Public Overloads Sub Method()  

                      Console。WriteLine(〃Derived。Method〃) 

                  End Sub 

              End Class 



                The next step is to instantiate the type Derived and cast the instance to the base type: 



                      Dim derivedCls As Derived = New Derived() 

                      Dim baseCls As Base = derivedCls 



               When casting from a derived type to a base class type; a type cast is not necessary and you  

          can assume it is implied。 

               A type cast is necessary when you want to cast a base class instance to a derived class instance。  

          Following is the source code for a forced type cast; assuming the inheritance hierarchy from  

          the previous cast。 



          Dim backToDerived As Derived = DirectCast(baseCls; Derived) 



                The forced cast is the use of the method DirectCase。 The cast is forced because a conver

          sion to the desired type will occur; regardless if it is possible or not。 If the cast is not possible; a  

          cast exception is thrown。 

               Another way to perform a type cast is to use a query cast; as illustrated by the following  

          code; again assuming the inheritance hierarchy of this section。 



          Dim backToDerived As Derived = TryCast(baseCls; Derived) 



                In the code; the cast involves using the TryCast method。 This cast is a query because a cast  

          will be attempted。 If the cast is successful; then an instance of the type is assigned to the vari

          able backToDerived。 If the cast is not possible; then backToDerived is assigned a  Nothing value。  

          No exception is thrown。 This casting technique is possible only for reference types。 


…………………………………………………………Page 217……………………………………………………………

                            CH AP T E R   7   ■    L E AR N IN G   AB O U T   CO M P O N E N TS   AN D   C L AS S  H I E R AR C HI E S 195 



The Important Stuff to Remember 



In this chapter; you learned about interfaces and implementations。 Here are the key points  

to remember: 



     o  Using interfaces is not like using inheritance。 They are two separate designs; even though  

        interfaces will use inheritance。 



     o  Interfaces at an abstract level imply ideas of how you would like your application to work。 



     o  Ideas when implemented as interfaces should be general and applicable to multiple  

        application implementations for the domain。 



     o  Ideas are represented using Visual Basic interfaces。 And interfaces are implemented  

        using classes or structures。 But note that interfaces are reference types。  



     o  Factories are used to instantiate implementations and return an instance that imple

        ments an interface。 Using a factory means that the user of an interface does not need to  

        know which type of implementation object is instantiated。 



     o  Interfaces can be considered as facets that might be targeting a specific characteristic of  

        an implementation。 However; as illustrated in the previous chapter; interfaces do not  

        expose Friend state or the  Friend workings of the implementations。 



     o  ponents are a fundamental way of developing code and should be your primary  

        way of writing code。 For the remainder of this book; interfaces will be used whenever  

        possible。 Take notice and try to understand what the idea behind the interface is。 



Some Things for You to Do 



The following are a couple things for you to do to apply what you’ve learned in this chapter。 



     1。  Implement your own tax system using the predefined base classes。  



■Note  Because of the number of possible tax systems; I do not provide an answer for exercise 1。 If you  

want me to review your answer; please send it to me at christianhgross@gmail。。 



     2。  Add functionality to the tax engine’s base classes that implement the behavior of a  

         minimum tax…free amount。 This means if your ine is not above the minimum tax

         free amount; you do not pay taxes。 


…………………………………………………………Page 218……………………………………………………………


…………………………………………………………Page 219……………………………………………………………

C  H  A  P  T  E  R     8 



 ■ ■ ■ 



Learning About ponent

Oriented Architecture 



So far; you have learned the essentials of Visual Basic。 With the essentials; you can write a  

functional application that uses classes; objects; interfaces; and inheritance。 In this chapter;  

you’ll learn about a Visual Basic programming technique that some developers define as structural。  

A structural programming technique is when the code does not directly serve to solve a business  

problem; but solves a problem relating to building the application。  

     Another purpose of this chapt

返回目录 上一页 下一页 回到顶部 2 2

你可能喜欢的