实现思路
- 定义
Shape
基类,包含CalculateArea
抽象方法。
- 从
Shape
类派生出Circle
类和Rectangle
类,在这两个子类中分别实现CalculateArea
方法,按照各自的计算逻辑计算面积。
- 创建一个
List(Of Shape)
集合,向其中添加Circle
和Rectangle
对象。
- 遍历该集合,调用每个对象的
CalculateArea
方法并输出结果。
代码实现(以Visual Basic.NET为例)
' 定义Shape基类
Public MustInherit Class Shape
Public MustOverride Function CalculateArea() As Double
End Class
' 定义Circle类继承自Shape
Public Class Circle
Inherits Shape
Private _radius As Double
Public Sub New(ByVal radius As Double)
_radius = radius
End Sub
Public Overrides Function CalculateArea() As Double
Return Math.PI * _radius * _radius
End Function
End Class
' 定义Rectangle类继承自Shape
Public Class Rectangle
Inherits Shape
Private _length As Double
Private _width As Double
Public Sub New(ByVal length As Double, ByVal width As Double)
_length = length
_width = width
End Sub
Public Overrides Function CalculateArea() As Double
Return _length * _width
End Function
End Class
' 主程序
Module Program
Sub Main()
Dim shapes As New List(Of Shape)()
shapes.Add(New Circle(5))
shapes.Add(New Rectangle(4, 6))
For Each shape In shapes
Console.WriteLine($"面积为: {shape.CalculateArea()}")
Next
End Sub
End Module
代码说明
Shape
基类定义了抽象方法CalculateArea
,要求子类必须实现。
Circle
类实现了CalculateArea
方法,使用圆的面积公式πr²
计算面积。
Rectangle
类实现了CalculateArea
方法,使用矩形面积公式长×宽
计算面积。
- 在
Main
方法中,创建了List(Of Shape)
集合,并添加了Circle
和Rectangle
对象,然后遍历该集合并输出每个图形的面积。