#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
def hablar( self ) :
pass
def moverse( self ) :
pass
def describeme( self ) :
print ( "Soy un Animal del tipo\n " , self .especie )
#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 con manchitas negras" )
#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 es mi afición!" )
mi_perro = Perro( "Mamífero" , 1 )
mi_vaca = Vaca( "Molusco" , 2 )
mi_abeja = Abeja( "Insecto" , 5 )
mi_perro.hablar ( )
mi_vaca.hablar ( )
mi_vaca.describeme ( )
mi_abeja.moverse ( )
mi_abeja.describeme ( )
mi_abeja.picar ( )
I0VKRVJDSUNJTyAzCiNFc2NvZ2VyZW1vcyBsYSB0ZW3DoXRpY2EgcXVlIHByZWZpcmFtb3MgeSBkZWZpbmlyZW1vcyB1bmEgZXN0cnVjdHVyYSBkZSBjbGFzZXMgeSBzdWJjbGFzZXMKI2RvbmRlIHByYWN0aXF1ZW1vcyBsYSBoZXJlbmNpYSBlbiBhbCBtZW5vcyBkb3Mgbml2ZWxlcyAoaGVyZW5jaWEgbXVsdGkgbml2ZWwpLgojQ3JlYXJlbW9zIHVuYSBlc3RydWN0dXJhIGRlIG3DrW5pbW8gNSBjbGFzZXMsIGNvbiBzdXMgcmVzcGVjdGl2b3MgY29uc3RydWN0b3JlcyB5IG3DqXRvZG9zLgojQ3JlYXJlbW9zIGFsZ3Vub3Mgb2JqZXRvcyB5IGNvbXByb2JhcmVtb3MgcXVlIGxhIGhlcmVuY2lhIGVzdMOpIGZ1bmNpb25hbmRvLiBTaSBwb2RlbW9zLAojaW5jbHVpcmVtb3MgYWxndW5hIHTDqWNuaWNhIGRlIHBvbGltb3JmaXNtby4KcHJpbnQoIkVKRVJDSUNJTyAzIikKI0VzY29nZXJlbW9zIGxhIHRlbcOhdGljYSBxdWUgcHJlZmlyYW1vcyB5IGRlZmluaXJlbW9zIHVuYSBlc3RydWN0dXJhIGRlIGNsYXNlcyB5IHN1YmNsYXNlcwojZG9uZGUgcHJhY3RpcXVlbW9zIGxhIGhlcmVuY2lhIGVuIGFsIG1lbm9zIGRvcyBuaXZlbGVzIChoZXJlbmNpYSBtdWx0aSBuaXZlbCkuCiNjcmVhbW9zIGxhIGNsYXNlIEFuaW1hbApjbGFzcyBBbmltYWw6CiAgICBkZWYgX19pbml0X18oc2VsZiwgZXNwZWNpZSwgZWRhZCk6CiAgICAgICAgc2VsZi5lc3BlY2llID0gZXNwZWNpZQogICAgICAgIHNlbGYuZWRhZCA9IGVkYWQKICAgIGRlZiBoYWJsYXIoc2VsZik6CiAgICAgICAgcGFzcwogICAgZGVmIG1vdmVyc2Uoc2VsZik6CiAgICAgICAgcGFzcwogICAgZGVmIGRlc2NyaWJlbWUoc2VsZik6CiAgICAgICAgcHJpbnQoIlNveSB1biBBbmltYWwgZGVsIHRpcG9cbiIsIHNlbGYuZXNwZWNpZSkKI0RlZmluaW1vcyBsYSBjbGFzZSBQZXJybwpjbGFzcyBQZXJybyhBbmltYWwpOgogICAgZGVmIGhhYmxhcihzZWxmKToKICAgICAgICBwcmludCgiR3VhdSEsR3VhdSEgU295IHVuIHBlcnJvIG11eSBndWFwbyIpCiAgICBkZWYgbW92ZXJzZShzZWxmKToKICAgICAgICBwcmludCgiWSB0ZW5nbyA0IHBhdGFzIHBhcmEgYW5kYXJcbiIpCiNEZWZpbmltb3MgbGEgY2xhc2UgVmFjYQpjbGFzcyBWYWNhKEFuaW1hbCk6CiAgICBkZWYgaGFibGFyKHNlbGYpOgogICAgICAgIHByaW50KCJNdXV1ISBNdXV1ISBTb3kgdW5hIFZhY2EgbXV5IHNpbXDDoXRpY2EiKQogICAgZGVmIG1vdmVyc2Uoc2VsZik6CiAgICAgICAgcHJpbnQoIkNhbWluYW5kbyBjb24gNCBwYXRhcyBjb24gbWFuY2hpdGFzIG5lZ3JhcyIpCiNEZWZpbmltb3MgbGEgY2xhc2UgQWJlamEgcXVlIGhlcmVkYSBkZSBhbmltYWwKY2xhc3MgQWJlamEoQW5pbWFsKToKICAgIGRlZiBoYWJsYXIoc2VsZik6CiAgICAgICAgcHJpbnQoIkJ6enp6ISBFc3RlIGVzIG1pIHNvbmlkbyBwcmVmZXJpZG8geWEgcXVlIHNveSB1bmEgYWJlamEiKQogICAgZGVmIG1vdmVyc2Uoc2VsZik6CiAgICAgICAgcHJpbnQoIlZvbGFuZG8gdm95IGEgdG9kYXMgcGFydGVzIikKICAgIGRlZiBwaWNhcihzZWxmKToKICAgICAgICBwcmludCgiUGljYXIgZXMgbWkgYWZpY2nDs24hIikKbWlfcGVycm8gPSBQZXJybygiTWFtw61mZXJvIiwgMSkKbWlfdmFjYSA9IFZhY2EoIk1vbHVzY28iLCAyKQptaV9hYmVqYSA9IEFiZWphKCJJbnNlY3RvIiwgNSkKbWlfcGVycm8uaGFibGFyKCkKbWlfdmFjYS5oYWJsYXIoKQptaV92YWNhLmRlc2NyaWJlbWUoKQptaV9hYmVqYS5tb3ZlcnNlKCkKbWlfYWJlamEuZGVzY3JpYmVtZSgpCm1pX2FiZWphLnBpY2FyKCkK