import math
# Base class
class Shape:
def area(self):
return 0
def perimeter(self):
return 0
# Subclass for Circle
class Circle(Shape):
def __init__(self, radius):
self.radius = radius
def area(self):
return math.pi * self.radius * self.radius
def perimeter(self):
return 2 * math.pi * self.radius
# Subclass for Triangle (assuming all sides are given)
class Triangle(Shape):
def __init__(self, a, b, c):
self.a = a
self.b = b
self.c = c
def perimeter(self):
return self.a + self.b + self.c
def area(self):
s = self.perimeter() / 2
return math.sqrt(s * (s - self.a) * (s - self.b) * (s - self.c)) # Heron's formula
# Subclass for Square
class Square(Shape):
def __init__(self, side):
self.side = side
def area(self):
return self.side * self.side
def perimeter(self):
return 4 * self.side
# Example usage
circle = Circle(5)
print("Circle - Area:", circle.area())
print("Circle - Perimeter:", circle.perimeter())
triangle = Triangle(3, 4, 5)
print("Triangle - Area:", triangle.area())
print("Triangle - Perimeter:", triangle.perimeter())
square = Square(4)
print("Square - Area:", square.area())
print("Square - Perimeter:", square.perimeter())