class Animal(): language = "None" # language gets a default value here def speak(self): print(self.language * 3) class Dog(Animal): # Note that Dog is chosing to use the inherited speak # method. def __init__(self, name, language): self.name = name self.language = language class Cat(Animal): # Note that alternatively Cat is overriding the inherited # speak method. name = "Kitty" # could have a default value for name def speak(self): print("meow" * 3)