#EJERCICIO 3
#Escogeremos la temática que prefiramos y definiremos una estructura de clases y subclases
#donde practiquemos la herencia en al menos dos niveles (herencia multi nivel).
#Crearemos una estructura de mínimo 5 clases, con sus respectivos constructores y métodos.
#Crearemos algunos objetos y comprobaremos que la herencia esté funcionando. Si podemos,
#incluiremos alguna técnica de polimorfismo.
print ( "EJERCICIO 3" )
#Escogeremos la temática que prefiramos y definiremos una estructura de clases y subclases
#donde practiquemos la herencia en al menos dos niveles (herencia multi nivel).
#creamos la clase Animal
class Animal:
def __init__ ( self , especie, edad) :
self .especie = especie
self .edad = edad
# Método hablar
def hablar( self ) :
pass
# Método moverse
def moverse( self ) :
pass
def describeme( self ) :
print ( "Soy un Animal del tipo" , type ( self ) .__name__)
#Definimos la clase Perro
class Perro( Animal) :
def hablar( self ) :
print ( "Guau!,Guau! Soy un perro muy guapo" )
def moverse( self ) :
print ( "Y tengo 4 patas para andar\n " )
#Definimos la clase Vaca
class Vaca( Animal) :
def hablar( self ) :
print ( "Muuu! Muuu! Soy una Vaca muy simpática" )
def moverse( self ) :
print ( "Caminando con 4 patas" )
#Definimos la clase Abeja que hereda de animal
class Abeja( Animal) :
def hablar( self ) :
print ( "Bzzzz! Este es mi sonido preferido ya que soy una abeja" )
def moverse( self ) :
print ( "Volando voy a todas partes" )
def picar( self ) :
print ( "Picar!" )
mi_perro = Perro( 'mamífero' , 1 )
mi_vaca = Vaca( 'mamífero' , 2 )
mi_abeja = Abeja( 'insecto' , 5 )
#Mi perro habla
mi_perro.hablar ( )
#Mi vaca se describe
mi_vaca.hablar ( )
mi_vaca.describeme ( )
mi_abeja.describeme ( )
# Soy un Animal del tipo Abeja
mi_abeja.picar ( )
# Picar!
I0VKRVJDSUNJTyAzCiNFc2NvZ2VyZW1vcyBsYSB0ZW3DoXRpY2EgcXVlIHByZWZpcmFtb3MgeSBkZWZpbmlyZW1vcyB1bmEgZXN0cnVjdHVyYSBkZSBjbGFzZXMgeSBzdWJjbGFzZXMKI2RvbmRlIHByYWN0aXF1ZW1vcyBsYSBoZXJlbmNpYSBlbiBhbCBtZW5vcyBkb3Mgbml2ZWxlcyAoaGVyZW5jaWEgbXVsdGkgbml2ZWwpLgojQ3JlYXJlbW9zIHVuYSBlc3RydWN0dXJhIGRlIG3DrW5pbW8gNSBjbGFzZXMsIGNvbiBzdXMgcmVzcGVjdGl2b3MgY29uc3RydWN0b3JlcyB5IG3DqXRvZG9zLgojQ3JlYXJlbW9zIGFsZ3Vub3Mgb2JqZXRvcyB5IGNvbXByb2JhcmVtb3MgcXVlIGxhIGhlcmVuY2lhIGVzdMOpIGZ1bmNpb25hbmRvLiBTaSBwb2RlbW9zLAojaW5jbHVpcmVtb3MgYWxndW5hIHTDqWNuaWNhIGRlIHBvbGltb3JmaXNtby4KcHJpbnQoIkVKRVJDSUNJTyAzIikKI0VzY29nZXJlbW9zIGxhIHRlbcOhdGljYSBxdWUgcHJlZmlyYW1vcyB5IGRlZmluaXJlbW9zIHVuYSBlc3RydWN0dXJhIGRlIGNsYXNlcyB5IHN1YmNsYXNlcwojZG9uZGUgcHJhY3RpcXVlbW9zIGxhIGhlcmVuY2lhIGVuIGFsIG1lbm9zIGRvcyBuaXZlbGVzIChoZXJlbmNpYSBtdWx0aSBuaXZlbCkuCiNjcmVhbW9zIGxhIGNsYXNlIEFuaW1hbApjbGFzcyBBbmltYWw6CiAgICBkZWYgX19pbml0X18oc2VsZiwgZXNwZWNpZSwgZWRhZCk6CiAgICAgICAgc2VsZi5lc3BlY2llID0gZXNwZWNpZQogICAgICAgIHNlbGYuZWRhZCA9IGVkYWQKIyBNw6l0b2RvIGhhYmxhcgogICAgZGVmIGhhYmxhcihzZWxmKToKICAgICAgICBwYXNzCiMgTcOpdG9kbyBtb3ZlcnNlCiAgICBkZWYgbW92ZXJzZShzZWxmKToKICAgICAgICBwYXNzCiAgICBkZWYgZGVzY3JpYmVtZShzZWxmKToKICAgICAgICBwcmludCgiU295IHVuIEFuaW1hbCBkZWwgdGlwbyIsIHR5cGUoc2VsZikuX19uYW1lX18pCiNEZWZpbmltb3MgbGEgY2xhc2UgUGVycm8KY2xhc3MgUGVycm8oQW5pbWFsKToKICAgIGRlZiBoYWJsYXIoc2VsZik6CiAgICAgICAgcHJpbnQoIkd1YXUhLEd1YXUhIFNveSB1biBwZXJybyBtdXkgZ3VhcG8iKQogICAgZGVmIG1vdmVyc2Uoc2VsZik6CiAgICAgICAgcHJpbnQoIlkgdGVuZ28gNCBwYXRhcyBwYXJhIGFuZGFyXG4iKQojRGVmaW5pbW9zIGxhIGNsYXNlIFZhY2EKY2xhc3MgVmFjYShBbmltYWwpOgogICAgZGVmIGhhYmxhcihzZWxmKToKICAgICAgICBwcmludCgiTXV1dSEgTXV1dSEgU295IHVuYSBWYWNhIG11eSBzaW1ww6F0aWNhIikKICAgIGRlZiBtb3ZlcnNlKHNlbGYpOgogICAgICAgIHByaW50KCJDYW1pbmFuZG8gY29uIDQgcGF0YXMiKQojRGVmaW5pbW9zIGxhIGNsYXNlIEFiZWphIHF1ZSBoZXJlZGEgZGUgYW5pbWFsCmNsYXNzIEFiZWphKEFuaW1hbCk6CiAgICBkZWYgaGFibGFyKHNlbGYpOgogICAgICAgIHByaW50KCJCenp6eiEgRXN0ZSBlcyBtaSBzb25pZG8gcHJlZmVyaWRvIHlhIHF1ZSBzb3kgdW5hIGFiZWphIikKICAgIGRlZiBtb3ZlcnNlKHNlbGYpOgogICAgICAgIHByaW50KCJWb2xhbmRvIHZveSBhIHRvZGFzIHBhcnRlcyIpCiAgICBkZWYgcGljYXIoc2VsZik6CiAgICAgICAgcHJpbnQoIlBpY2FyISIpCm1pX3BlcnJvID0gUGVycm8oJ21hbcOtZmVybycsIDEpCm1pX3ZhY2EgPSBWYWNhKCdtYW3DrWZlcm8nLCAyKQptaV9hYmVqYSA9IEFiZWphKCdpbnNlY3RvJywgNSkKI01pIHBlcnJvIGhhYmxhCm1pX3BlcnJvLmhhYmxhcigpCiNNaSB2YWNhIHNlIGRlc2NyaWJlCm1pX3ZhY2EuaGFibGFyKCkKbWlfdmFjYS5kZXNjcmliZW1lKCkKbWlfYWJlamEuZGVzY3JpYmVtZSgpCgojIFNveSB1biBBbmltYWwgZGVsIHRpcG8gQWJlamEKCm1pX2FiZWphLnBpY2FyKCkKIyBQaWNhciEK