#coding:utf-8 """ Exemples d'herència i de polimorfisme """ import math class Cercle: def __init__(self, x, y, r): self.x = x self.y = y self.r = r def area(self): return math.pi * (self.r ** 2) def mou(self, x, y): self.x += x self.y += y def __str__(self): return 'centre='+ str( (self.x,self.y) ) + ', radi=' + \ str(self.r) class SectorCircular(Cercle): """ Classe derivada de Cercle """ def __init__(self, x, y, r, angle): super().__init__(x, y, r) self.angle = angle def area(self): return self.r ** 2 * self.angle / 2.0 def __str__(self): return super().__str__() + ', angle=' + str(self.angle) class rectangle: def __init__(self, x, y, l): self.x = x self.y = y self.l = l def area(self): return self.l ** 2 def mou(self, x, y): self.x += x self.y += y def __str__(self): return 'centre='+ str( (self.x,self.y) ) + ', costats= ' + str(self.l) def suma_arees(e1, e2): """ Funció polimòrfica que admet qualsevol tipus d'objecte geomètric (Cercles, àrees circulars i/o quadrats) """ return e1.area() + e2.area()