VB.Net Tutorial/Class Module/MustInherit — различия между версиями

Материал из VB Эксперт
Перейти к: навигация, поиск
м (1 версия)
 
(нет различий)

Текущая версия на 15:55, 26 мая 2010

Inherited MustInherit

<source lang="vbnet">Public MustInherit Class Cls1

   Public MustOverride Function greet1() As String

End Class Public MustInherit Class Cls2

   Inherits Cls1
   Public MustOverride Function greet2() As String

End Class Public Class Cls3

   Inherits Cls2
   Public Overrides Function greet1() As String
   End Function
   Public Overrides Function greet2() As String
   End Function

End Class</source>

MustInherit class

<source lang="vbnet">Option Strict On

Imports System

MustInherit Public Class Control
   Public Sub New(top As Integer, left As Integer)
      Me.top = top
      Me.left = left
   End Sub
   Public MustOverride Sub DrawControl( )
   Protected top As Integer
   Protected left As Integer
End Class 
Public Class Label
   Inherits Control
   Public Sub New(top As Integer, left As Integer, contents As String)
      MyBase.New(top, left) 
      listBoxContents = contents
   End Sub
   Public Overrides Sub DrawControl( )
      Console.WriteLine("Writing string to the listbox: {0}", listBoxContents)
   End Sub 
   Private listBoxContents As String 
End Class
Public Class Button
   Inherits Control
   Public Sub New(top As Integer, left As Integer)
      MyBase.New(top, left)
   End Sub
   Public Overrides Sub DrawControl( )
      Console.WriteLine("Drawing a button at {0}, {1}" + ControlChars.Lf, top, left)
   End Sub 
End Class
Public Class Tester
   Shared Sub Main( )
      Dim winArray(3) As Control
      winArray(0) = New Label(1, 2, "A")
      winArray(1) = New Label(3, 4, "B")
      winArray(2) = New Button(5, 6)
      Dim i As Integer
      For i = 0 To 2
         winArray(i).DrawControl( )
      Next i
   End Sub "Main
End Class "Tester</source>
Writing string to the listbox: A
Writing string to the listbox: B
Drawing a button at 5, 6

Polymorphic

<source lang="vbnet">Imports System.Collections public class MustOverrideMustInherit

  public Shared Sub Main
       Dim ShapeArray As New ArrayList()
       ShapeArray.Add(New Cone())
       ShapeArray.Add(New Cube())
       ShapeArray.Add(New Cylinder())
       ShapeArray.Add(New Rectangle())
       Dim shape As Shape
       For Each shape In ShapeArray
           Console.WriteLine(shape.DrawMe())
       Next
  End Sub

End class Public MustInherit Class Shape

   Public MustOverride Function DrawMe() As String

End Class Public Class Cone

   Inherits Shape
   Public Overrides Function DrawMe() As String
       Return "Drawing Cone..."
   End Function

End Class Public Class Rectangle

   Inherits Shape
   Public Overrides Function DrawMe() As String
       Return "Drawing Rectangle..."
   End Function

End Class Public Class Oval

   Inherits Shape
   Public Overrides Function DrawMe() As String
       Return "Drawing Oval..."
   End Function

End Class Public Class Cylinder

   Inherits Shape
   Public Overrides Function DrawMe() As String
       Return "Drawing Cylinder..."
   End Function

End Class Public Class Cube

   Inherits Shape
   Public Overrides Function DrawMe() As String
       Return "Drawing Cube..."
   End Function

End Class</source>

Drawing Cone...
Drawing Cube...
Drawing Cylinder...
Drawing Rectangle...

Use MustInherit to define abstract class

<source lang="vbnet">Public MustInherit Class Printable

   Public PageData As String
   Public MustOverride Sub ShowPage()
   Public Sub New(ByVal Message As String)
       PageData = Message
   End Sub

End Class Public Class Word

   Inherits Printable
   Public Overrides Sub ShowPage()
       Console.WriteLine("word: " & PageData)
   End Sub
   Public Sub New(ByVal Message As String)
       MyBase.New(Message)
   End Sub

End Class Public Class Text

   Inherits Printable
   Public Overrides Sub ShowPage()
       Console.WriteLine("Test: " & PageData)
   End Sub
   Public Sub New(ByVal Message As String)
       MyBase.New(Message)
   End Sub

End Class

Module Module1

   Sub Main()
       Dim WebPage As Word = New Word("word page")
       Dim MobilePage As Text = New Text("text file")
       WebPage.ShowPage()
       Console.WriteLine()
       MobilePage.ShowPage()
   End Sub

End Module</source>

word: word page
Test: text file