#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\n " , 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 una Abeja
mi_abeja.picar ( )
I0VKRVJDSUNJTyAzCiNFc2NvZ2VyZW1vcyBsYSB0ZW3DoXRpY2EgcXVlIHByZWZpcmFtb3MgeSBkZWZpbmlyZW1vcyB1bmEgZXN0cnVjdHVyYSBkZSBjbGFzZXMgeSBzdWJjbGFzZXMKI2RvbmRlIHByYWN0aXF1ZW1vcyBsYSBoZXJlbmNpYSBlbiBhbCBtZW5vcyBkb3Mgbml2ZWxlcyAoaGVyZW5jaWEgbXVsdGkgbml2ZWwpLgojQ3JlYXJlbW9zIHVuYSBlc3RydWN0dXJhIGRlIG3DrW5pbW8gNSBjbGFzZXMsIGNvbiBzdXMgcmVzcGVjdGl2b3MgY29uc3RydWN0b3JlcyB5IG3DqXRvZG9zLgojQ3JlYXJlbW9zIGFsZ3Vub3Mgb2JqZXRvcyB5IGNvbXByb2JhcmVtb3MgcXVlIGxhIGhlcmVuY2lhIGVzdMOpIGZ1bmNpb25hbmRvLiBTaSBwb2RlbW9zLAojaW5jbHVpcmVtb3MgYWxndW5hIHTDqWNuaWNhIGRlIHBvbGltb3JmaXNtby4KcHJpbnQoIkVKRVJDSUNJTyAzIikKI0VzY29nZXJlbW9zIGxhIHRlbcOhdGljYSBxdWUgcHJlZmlyYW1vcyB5IGRlZmluaXJlbW9zIHVuYSBlc3RydWN0dXJhIGRlIGNsYXNlcyB5IHN1YmNsYXNlcwojZG9uZGUgcHJhY3RpcXVlbW9zIGxhIGhlcmVuY2lhIGVuIGFsIG1lbm9zIGRvcyBuaXZlbGVzIChoZXJlbmNpYSBtdWx0aSBuaXZlbCkuCiNjcmVhbW9zIGxhIGNsYXNlIEFuaW1hbApjbGFzcyBBbmltYWw6CiAgICBkZWYgX19pbml0X18oc2VsZiwgZXNwZWNpZSwgZWRhZCk6CiAgICAgICAgc2VsZi5lc3BlY2llID0gZXNwZWNpZQogICAgICAgIHNlbGYuZWRhZCA9IGVkYWQKIyBNw6l0b2RvIGhhYmxhcgogICAgZGVmIGhhYmxhcihzZWxmKToKICAgICAgICBwYXNzCiMgTcOpdG9kbyBtb3ZlcnNlCiAgICBkZWYgbW92ZXJzZShzZWxmKToKICAgICAgICBwYXNzCiAgICBkZWYgZGVzY3JpYmVtZShzZWxmKToKICAgICAgICBwcmludCgiU295IHVuIEFuaW1hbCBkZWwgdGlwb1xuIiwgdHlwZShzZWxmKS5fX25hbWVfXykKI0RlZmluaW1vcyBsYSBjbGFzZSBQZXJybwpjbGFzcyBQZXJybyhBbmltYWwpOgogICAgZGVmIGhhYmxhcihzZWxmKToKICAgICAgICBwcmludCgiR3VhdSEsR3VhdSEgU295IHVuIHBlcnJvIG11eSBndWFwbyIpCiAgICBkZWYgbW92ZXJzZShzZWxmKToKICAgICAgICBwcmludCgiWSB0ZW5nbyA0IHBhdGFzIHBhcmEgYW5kYXJcbiIpCiNEZWZpbmltb3MgbGEgY2xhc2UgVmFjYQpjbGFzcyBWYWNhKEFuaW1hbCk6CiAgICBkZWYgaGFibGFyKHNlbGYpOgogICAgICAgIHByaW50KCJNdXV1ISBNdXV1ISBTb3kgdW5hIFZhY2EgbXV5IHNpbXDDoXRpY2EiKQogICAgZGVmIG1vdmVyc2Uoc2VsZik6CiAgICAgICAgcHJpbnQoIkNhbWluYW5kbyBjb24gNCBwYXRhcyIpCiNEZWZpbmltb3MgbGEgY2xhc2UgQWJlamEgcXVlIGhlcmVkYSBkZSBhbmltYWwKY2xhc3MgQWJlamEoQW5pbWFsKToKICAgIGRlZiBoYWJsYXIoc2VsZik6CiAgICAgICAgcHJpbnQoIkJ6enp6ISBFc3RlIGVzIG1pIHNvbmlkbyBwcmVmZXJpZG8geWEgcXVlIHNveSB1bmEgYWJlamEiKQogICAgZGVmIG1vdmVyc2Uoc2VsZik6CiAgICAgICAgcHJpbnQoIlZvbGFuZG8gdm95IGEgdG9kYXMgcGFydGVzIikKICAgIGRlZiBwaWNhcihzZWxmKToKICAgICAgICBwcmludCgiUGljYXIhIikKbWlfcGVycm8gPSBQZXJybygnbWFtw61mZXJvJywgMSkKbWlfdmFjYSA9IFZhY2EoJ21hbcOtZmVybycsIDIpCm1pX2FiZWphID0gQWJlamEoJ2luc2VjdG8nLCA1KQojTWkgcGVycm8gaGFibGEKbWlfcGVycm8uaGFibGFyKCkKI01pIHZhY2Egc2UgZGVzY3JpYmUKbWlfdmFjYS5oYWJsYXIoKQptaV92YWNhLmRlc2NyaWJlbWUoKQptaV9hYmVqYS5kZXNjcmliZW1lKCkKCiMgU295IHVuYSBBYmVqYQoKbWlfYWJlamEucGljYXIoKQoK