Imports System
Namespace Houses
Class House
Protected area As Integer
Protected door As Door
Public Sub New(ByVal area As Integer)
Me.area = area
door = New Door()
End Sub
Public Property Area As Integer
Get
Return area
End Get
Set(ByVal value As Integer)
area = value
End Set
End Property
Public Property Door As Door
Get
Return door
End Get
Set(ByVal value As Door)
door = value
End Set
End Property
Public Overridable Sub ShowData()
Console.WriteLine("I am a house, my area is {0} m2.", area)
End Sub
End Class
Class Door
Protected color As String
Public Sub New()
color = "Brown"
End Sub
Public Sub New(ByVal color As String)
Me.color = color
End Sub
Public Property Color As String
Get
Return color
End Get
Set(ByVal value As String)
color = value
End Set
End Property
Public Sub ShowData()
Console.WriteLine("I am a door, my color is {0}.", color)
End Sub
End Class
Class SmallApartment
Inherits House
Public Sub New()
MyBase.New(50)
End Sub
Public Overrides Sub ShowData()
Console.WriteLine("I am an apartment, my area is " & area & " m2")
End Sub
End Class
Class Person
Protected name As String
Protected house As House
Public Sub New()
name = "Juan"
house = New House(150)
End Sub
Public Sub New(ByVal name As String, ByVal house As House)
Me.name = name
Me.house = house
End Sub
Public Property Name As String
Get
Return name
End Get
Set(ByVal value As String)
name = value
End Set
End Property
Public Property House As House
Get
Return house
End Get
Set(ByVal value As House)
house = value
End Set
End Property
Public Sub ShowData()
Console.WriteLine("My name is {0}.", name)
house.ShowData()
house.Door.ShowData()
End Sub
End Class
Class TestHouse
Private Shared Sub Main()
Dim debug As Boolean = True
Dim mySmallApartament As SmallApartment = New SmallApartment()
Dim myPerson As Person = New Person()
myPerson.Name = "Juan"
myPerson.House = mySmallApartament
myPerson.ShowData()
If debug Then Console.ReadLine()
End Sub
End Class
End Namespace