quarta-feira, 16 de outubro de 2013

[Python] - Utilizando herança

Olá pessoal, nesse post iremos falar um pouco sobre herança em Python. Herança é um recurso muito importante da orientação a objetos.

Com a herança, você pode ter uma subclasse que herda métodos e atributos de uma superclasse. Com isso você pode reutilizar funções deixando seu código mais limpo.

# -*- coding:utf-8 -*-

# Orientação a objetos - Herança

# superclasse
class Eletronico:
   def __init__(self):
       self.ligado = False
   def ligar(self):
       self.ligado = True
   def desligar(self):
       self.ligado = False
   def esta_ligado(self):
       return self.ligado

# classe TV, herda métodos e atributos da classe Eletronico
class TV(Eletronico):
   def __init__(self):
       # método construtor da superclasse sendo chamado
       # reutiliza as definições da superclasse
       Eletronico.__init__(self)
       self.volume = 0
   def aumentar_volume(self):
       self.volume = self.volume + 1
   def diminuir_volume(self):
       if self.volume > 0:
           self.volume = self.volume - 1
   def obter_volume(self):
       return self.volume

# classe iPhone, herda métodos e atributos da classe Eletronico
class iPhone(Eletronico):
   def __init__(self):
       Eletronico.__init__(self)
       self.tocando_musica = False
   def tocar_musica(self):
       self.tocando_musica = True
   def parar_musica(self):
       self.tocando_musica = False
   def tocando_som(self):
       return self.tocando_musica

# testando...

tv = TV()
print(tv.esta_ligado())
tv.ligar()
print(tv.esta_ligado())
tv.aumentar_volume()
print(tv.obter_volume())
tv.diminuir_volume()
print(tv.obter_volume())

iphone = iPhone()
print(iphone.esta_ligado())
iphone.ligar()
print(iphone.esta_ligado())
print(iphone.tocando_som())
iphone.tocar_musica()
print(iphone.tocando_som())
iphone.parar_musica()
print(iphone.tocando_som())

Vídeo com a explicação do código:



Nenhum comentário: