Option Strict On Public Class Triangle Inherits Shape Private side1, side2, side3 As Double Sub New(ByVal sideA As Double, ByVal sideB As Double, ByVal sideC As Double) MyBase.New() side1 = sideA side2 = sideB side3 = sideC End Sub Sub New() End Sub Property SideA() As Double Get SideA = side1 End Get Set(ByVal Value As Double) side1 = Value End Set End Property Property SideB() As Double Get SideB = side2 End Get Set(ByVal Value As Double) side2 = Value End Set End Property Public Property SideC() As Double Get SideC = side3 End Get Set(ByVal Value As Double) side3 = Value End Set End Property Public Overrides Function Area() As Double Dim Perim As Double Perim = Perimeter() Return (Math.Sqrt(Perim * (Perim - side1) * (Perim - side2) * (Perim - side3))) End Function Public Overrides Function Perimeter() As Double Return (side1 + side2 + side3) End Function End Class Public Class Circle Inherits Shape Private cRadius As Double Sub New(ByVal radius As Double) MyBase.New() cRadius = radius End Sub Sub New() End Sub Public Property Radius() As Double Get Radius = cRadius End Get Set(ByVal Value As Double) cRadius = Value End Set End Property Public Overrides Function Area() As Double Return (Math.PI * cRadius ^ 2) End Function Public Overrides Function Perimeter() As Double Return (2 * Math.PI * cRadius) End Function End Class Public Class Square Inherits Shape Private sSide As Double Sub New(ByVal Side As Double) MyBase.New() sSide = Side End Sub Sub New() End Sub Public Property Side() As Double Get Side = sSide End Get Set(ByVal Value As Double) sSide = Value End Set End Property Public Overrides Function Area() As Double Area = sSide * sSide End Function Public Overrides Function Perimeter() As Double Return (4 * sSide) End Function End Class