Primeira vez aqui? Seja bem vindo e cheque o FAQ!
x

Você pode dar um exemplo de uma classe abstrata em Python?

0 votos
785 visitas
perguntada Mar 24, 2016 em Programação Computacional por danielcajueiro (5,761 pontos)  
Compartilhe

1 Resposta

0 votos
respondida Mar 24, 2016 por danielcajueiro (5,761 pontos)  

Shape é um exemplo de uma classe abstrata em Python. Nesse exemplo, existem duas subclasses que implementam os métodos dessa classe:

import math

class Shape:        # define parent class
   parametersList = []
   def __init__(self,parametersList,color):
       self.parametersList=parametersList
       self.color=color
   def print_color(self):
       # Prints object color
       raise NotImplementedError
   def eval_area(self):   
       # Evals area
       raise NotImplementedError

class Square(Shape): # define child class
    def eval_area(self):
        print(math.pow(self.parametersList,2))
    def print_color(self):    
        print("My square is ",self.color)


class Rectangle(Shape): # define child class
    def eval_area(self):
        print (self.parametersList[0]*self.parametersList[1])
    def print_color(self):    
        print("My Rectangle is ",self.color)

if __name__ == '__main__':

    s=Square(2,'Blue')    
    s.print_color()
    s.eval_area()

    r=Rectangle([2,4],'Green')
    r.print_color()
    r.eval_area() 
comentou Abr 7, 2016 por Saulo (451 pontos)  
Uma classe abstrata não pode ser instanciada. Em C++, por exemplo, ela possui um método virtual puro. Veja este exemplo:

http://prorum.com/index.php/2283/voce-pode-dar-um-exemplo-de-polimorfismo-em-python

A classe Shape é abstrata, pois possui o método virtual puro calculateArea(), que sabemos que é virtual puro por causa do igual a 0. As classes filhas (Square e Circle) que implementam este método podem ser instanciadas.
...