Call constroctor from base class
Option Strict On
Imports System
Public Class Rectangle
Public Sub New(ByVal top As Integer, ByVal left As Integer)
Me.top = top
Me.left = left
End Sub
Public Sub DrawRectangle( )
Console.WriteLine("Drawing Rectangle at {0}, {1}", top, left)
End Sub
Private top As Integer
Private left As Integer
End Class
Public Class NamedRectangle
Inherits Rectangle
Public Sub New(ByVal top As Integer, ByVal left As Integer, ByVal n As String)
MyBase.New(top, left)
RectName = n
End Sub "New
Public Shadows Sub DrawRectangle( )
MyBase.DrawRectangle( )
Console.WriteLine("Writing string to the listbox: {0}", RectName)
End Sub
Private RectName As String
End Class
Module Module1
Sub Main( )
Dim w As New Rectangle(5, 10)
w.DrawRectangle( )
Dim lb As New NamedRectangle(20, 30, "Hello")
lb.DrawRectangle( )
End Sub
End Module
Drawing Rectangle at 5, 10
Drawing Rectangle at 20, 30
Writing string to the listbox: Hello
Call method with MyBase
Option Strict On
Imports System
Public Class Control
Public Sub New(ByVal top As Integer, ByVal left As Integer)
Me.top = top
Me.left = left
End Sub
Public Overridable Sub DrawControl( )
Console.WriteLine("Control: drawing Control at {0}, {1}", top, left)
End Sub
Protected top As Integer
Protected left As Integer
End Class
Public Class Label
Inherits Control
Public Sub New(ByVal top As Integer, ByVal left As Integer, ByVal n As String)
MyBase.New(top, left)
text = n
End Sub
Public Overrides Sub DrawControl( )
MyBase.DrawControl( )
Console.WriteLine("Writing string to the listbox: {0}", text)
End Sub
Private text As String
End Class
Public Class Button
Inherits Control
Public Sub New(ByVal top As Integer, ByVal left As Integer)
MyBase.New(top, left)
End Sub "New
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 win As New Control(1, 2)
Dim lb As New Label(3, 4, "test")
Dim b As New Button(5, 6)
win.DrawControl( )
lb.DrawControl( )
b.DrawControl( )
Dim winArray(3) As Control
winArray(0) = New Control(1, 2)
winArray(1) = New Label(3, 4, "AAA")
winArray(2) = New Button(5, 6)
Dim i As Integer
For i = 0 To 2
winArray(i).DrawControl( )
Next i
End Sub
End Class
Control: drawing Control at 1, 2
Control: drawing Control at 3, 4
Writing string to the listbox: test
Drawing a button at 5, 6
Control: drawing Control at 1, 2
Control: drawing Control at 3, 4
Writing string to the listbox: AAA
Drawing a button at 5, 6
Protected base constructor
Public MustInherit Class Product
Public Price As Single
Public Location As String = "Unshelved"
Public IsSpecial As Boolean = False
Public Type As String = "Not Defined"
Protected Sub New(T As String, Optional s As Boolean = False)
If s Then IsSpecial = True
Type = T
End Sub
End Class
Class MyProduct
Inherits Product
Public Title = "Test Title"
Public Sub New()
MyBase.New("CD")
End Sub
Public Sub New(IsSpecial As Boolean)
MyBase.New("CD", IsSpecial)
End Sub
Public Sub New(T As String, Optional IsSpecial As Boolean = False)
Me.New(IsSpecial)
Title = T
End Sub
End Class
Module Test
Sub Main()
Dim C1 = New MyProduct("S")
Dim C2 = New MyProduct("H", True)
C1.Price = 9.99
C2.Price = 12.99
Console.WriteLine(C1.Title)
Console.WriteLine(C1.Location)
Console.WriteLine(C1.Price)
Console.WriteLine(C2.Title)
Console.WriteLine(C2.Location)
Console.WriteLine(C2.Price)
End Sub
End Module
S
Unshelved
9.99
H
Unshelved
12.99
Shadows method in base class
Option Strict On
Imports System
Public Class Rectangle
Public Sub New(ByVal top As Integer, ByVal left As Integer)
Me.top = top
Me.left = left
End Sub
Public Sub DrawRectangle( )
Console.WriteLine("Drawing Rectangle at {0}, {1}", top, left)
End Sub
Private top As Integer
Private left As Integer
End Class
Public Class NamedRectangle
Inherits Rectangle
Public Sub New(ByVal top As Integer, ByVal left As Integer, ByVal n As String)
MyBase.New(top, left)
RectName = n
End Sub "New
Public Shadows Sub DrawRectangle( )
MyBase.DrawRectangle( )
Console.WriteLine("Writing string to the listbox: {0}", RectName)
End Sub
Private RectName As String
End Class
Module Module1
Sub Main( )
Dim w As New Rectangle(5, 10)
w.DrawRectangle( )
Dim lb As New NamedRectangle(20, 30, "Hello")
lb.DrawRectangle( )
End Sub
End Module
Drawing Rectangle at 5, 10
Drawing Rectangle at 20, 30
Writing string to the listbox: Hello