
class Mammal:
    def __init__(self, sound):
        self.sound = sound

    def laysEggs(self):
        return False

    def speak(self):
        print( self.sound )

class Dolphin(Mammal):
    def __init__(self):
        Mammal.__init__(self, "ak ak ak")
##
class Platypus(Mammal):
    def __init__(self):
        Mammal.__init__(self, "errr")
##
    def laysEggs(self):
        return True

class Human(Mammal):
    def __init__(self):
        Mammal.__init__(self, "I'll take a grande latte with a double-shot of espresso")
##
class CSStudent(Human):
    def __init__(self):
        Human.__init__(self)
        self.sound = "I love programming"

d = Dolphin()
d.speak()
print( d.laysEggs() )

p = Platypus()
p.speak()
print( d.laysEggs() )

h = Human()
h.speak()
print( h.laysEggs() )

s = CSStudent()
s.speak()
print( s.laysEggs() )
