首先创建一个类家族,其中抽象类几何图形类geometricobject为父类,圆类circle和矩形类rectangle为子类。几何图形类geometricobject中定义保护型字符串变量color,表示图形的颜色;该类要具备构造方法和两个抽象方法findarea和findperimeter,抽象方法findarea求图形面积,抽象方法findperimeter求图形周长。 (2)circle类和rectangle类是geometricobject类的子类,其中应实现父类的抽象方法。 (3)程序主方法中创建两个几何对象:一个圆和一个矩形,并用geometricobject类的引用变量引用他们,调用抽象方法。
时间: 2024-03-25 07:37:27 浏览: 186
可以按照以下代码实现这个类家族:
```python
# 定义几何图形类
class GeometricObject:
def __init__(self, color):
self.color = color
def find_area(self):
pass
def find_perimeter(self):
pass
# 定义圆类
class Circle(GeometricObject):
def __init__(self, color, radius):
super().__init__(color)
self.radius = radius
def find_area(self):
return 3.14 * self.radius * self.radius
def find_perimeter(self):
return 2 * 3.14 * self.radius
# 定义矩形类
class Rectangle(GeometricObject):
def __init__(self, color, width, height):
super().__init__(color)
self.width = width
self.height = height
def find_area(self):
return self.width * self.height
def find_perimeter(self):
return 2 * (self.width + self.height)
# 主程序
if __name__ == '__main__':
# 创建圆和矩形对象
circle = Circle('red', 5)
rectangle = Rectangle('blue', 3, 4)
# 使用父类引用变量调用子类的方法
geometric_obj1 = circle
geometric_obj2 = rectangle
print(geometric_obj1.find_area())
print(geometric_obj1.find_perimeter())
print(geometric_obj2.find_area())
print(geometric_obj2.find_perimeter())
```
以上代码中,我们首先定义了一个抽象类`GeometricObject`作为所有几何图形类的父类,其中包含了一个保护型字符串变量`color`和两个抽象方法`find_area`和`find_perimeter`。然后我们定义了圆类和矩形类,分别继承了父类的属性和方法,并重写了父类的两个抽象方法。最后,在主程序中创建了圆和矩形对象,并使用父类引用变量调用子类的方法。
阅读全文