Classy Extensions
Classy Extensions, this kata is mainly aimed at the new JS ES6 Update introducing extends keyword. You will be preloaded with the Animal class, so you should only edit the Cat class.

Task
Your task is to complete the Cat class which Extends Animal and replace the speak method to return the cats name + meows.
e.g. 'Mr Whiskers meows.'

The name attribute is passed with this.name (JS), @name (Ruby) or self.name (Python).

Reference: [JS](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes), [Ruby](http://rubylearning.com/satishtalim/ruby_inheritance.html), [Python](https://docs.python.org/2/tutorial/classes.html#inheritance).

Difficulty: EASY
Tags: Fundamentals

Starter code:
def __init__(self, name):
	

Solutions:
class Cat(Animal):

	def __init__(self, name):
		self.name = name

	def speak(self):
		return '{} meows.'.format(self.name)


class Cat(Animal):

	def __init__(self, name, *args, **kwargs):
		assert isinstance(name, str)
		self.name = name

	def speak(self):
		return ' '.join((self.name, 'meows.'))


class Cat(Animal):

	def __init__(self, name):
		self.name = name

	def speak(self):
		return f'{self.name} meows.'


class Cat(Animal):

	def __init__(self, name):
		self.name = name

	def speak(self):
		return '%s meows.' % self.name


class Cat(Animal):

	def __init__(self, name):
		super().__init__(self)
		self.name = name

	def speak(self):
		return self.name + ' meows.'


class Cat(Animal):

	def __init__(self, saying):
		self.saying = saying

	def speak(self):
		return self.saying + ' meows.'


class Cat(object):

	def __init__(self, animal):
		self.animal = animal

	def speak(self):
		return '{} meows.'.format(self.animal)


class Animal:

	def __init__(self, name, voice='meows'):
		if name == 'noise':
			self.voice = 'makes a noise'
		else:
			self.voice = voice
		self.name = name

	def speak(self):
		return f'{self.name} {self.voice}.'

class Cat(Animal):
	pass


class Cat(Animal):

	def __init__(self, name):
		setattr(self, 'speak', lambda : '{} meows.'.format(name))


class Cat(Animal):

	def __init__(self, animal):
		self.animal = animal
		self.word = 'meows.'

	def speak(self):
		return self.animal + ' ' + self.word


class Cat:

	def __init__(self, name):
		super().__init__()
		self.name = name

	def speak(self):
		return f'{self.name} meows.'


class Cat(Animal):

	def __init__(self, name):
		self.cat_name = name

	def speak(self):
		return self.cat_name + ' ' + 'meows.'


class Animal:

	def __init__(self, name):
		self.name = name

	def speak(self):
		if self.name == 'noise':
			return self.name + ' makes a noise.'
		return self.name + ' meows.'

class Cat(Animal):
	pass


class Animal:

	def __init__(self, name):
		self.name = name

	def speak(self):
		return self.name + ' makes a ' + self.name + '.'

class Cat(Animal):

	def speak(self):
		return self.name + ' meows.'


class Cat(Animal):

	def __init__(self, text):
		self._text = text

	def speak(self):
		return f'{self._text} meows.'


class Cat:

	def __init__(self, name):
		self.name = name

	def speak(self):
		return self.name + ' meows.'
cat = Cat('Mr Whiskers')
print(cat.speak())


class Cat(Animal):

	def __init__(self, Animal):
		self.animal = Animal

	def speak(self):
		return f'{self.animal} meows.'


class Cat:

	def __init__(self, cat):
		self.name = cat
		self.call = self.name + ' meows.'

	def speak(self):
		return self.call


class Cat(Animal):

	def __init__(self, name):
		self.name = name

	def speak(self):
		return self.name + ' meows.'
cat1 = Cat('Mr Pederce')


class Cat(Animal):

	def __init__(self, name):
		Animal.__init__(self, name)

	def get_name(self):
		return self.name

	def speak(self):
		return self.name + ' meows.'


class Cat(Animal):

	def __init__(self, name):
		self.name = name

	def speak(self):
		self.info = self.name + ' meows.'
		return self.info


class Cat(Animal):

	def __init__(self, words):
		self.words = words

	def speak(self):
		return self.words + ' meows.'


class Animal:

	def __init__(self, name):
		self.name = name
		self.word = 'makes a noise'

	def get_name(self):
		return self.name

	def speak(self):
		return f'{self.name} {self.word}.'

class Cat(Animal):

	def __init__(self, name):
		super().__init__(name)
		self.word = 'meows'
cat = Cat('Whiskers')
print(cat.speak())


class Cat:

	def __init__(self, name):
		self.name = name

	def speak(self):
		speak = 'meows.'
		return str(self.name + ' ' + speak)


class Cat(Animal):

	def __init__(self, cat):
		self.Animal = cat

	def speak(self):
		return self.Animal + ' meows.'


class Cat(Animal):

	def speak(self):
		return self.name + ' ' + 'meows.'


class Cat:

	def __init__(self, a):
		self.a = a

	def speak(self):
		return self.a + ' meows.'


class Animal(object):

	def __init__(self, name):
		self.name = name

	def speak(self):
		return 'noise makes a noise.'

class Cat(Animal):

	def speak(self):
		return '{} meows.'.format(self.name)


class Cat(Animal):

	def __init__(self, cat_n):
		self.cat_n = cat_n

	def speak(self):
		return self.cat_n + ' meows.'


class Cat(Animal):

	def ___init__(self, s):
		self.name = s

	def speak(self):
		return '{} meows.'.format(self.name)


class Cat:

	def __init__(self, animal):
		self.animal = animal

	def speak(self):
		return self.animal + ' meows.'


class Cat(Animal):

	def __init__(self, animal):
		self.name = animal

	def speak(self):
		return '{0} meows.'.format(self.name)


class Cat:

	def __init__(self, name='Chonky'):
		self.name = name

	def speak(self):
		return '{} meows.'.format(self.name)