A constructor function that inherits its <code>prototype</code> object from a <code>supertype</code> constructor function can still have its own methods in addition to inherited methods.
For example, <code>Bird</code> is a constructor that inherits its <code>prototype</code> from <code>Animal</code>:
In addition to what is inherited from <code>Animal</code>, you want to add behavior that is unique to <code>Bird</code> objects. Here, <code>Bird</code> will get a <code>fly()</code> function. Functions are added to <code>Bird's</code><code>prototype</code> the same way as any constructor function:
Now instances of <code>Bird</code> will have both <code>eat()</code> and <code>fly()</code> methods:
<blockquote>let duck = new Bird();<br>duck.eat(); // prints "nom nom nom"<br>duck.fly(); // prints "I'm flying!"</blockquote>
</section>
## Instructions
<sectionid='instructions'>
Add all necessary code so the <code>Dog</code> object inherits from <code>Animal</code> and the <code>Dog's</code><code>prototype</code> constructor is set to Dog. Then add a <code>bark()</code> method to the <code>Dog</code> object so that <code>beagle</code> can both <code>eat()</code> and <code>bark()</code>. The <code>bark()</code> method should print "Woof!" to the console.
</section>
## Tests
<sectionid='tests'>
```yml
- text: <code>Animal</code> should not respond to the <code>bark()</code> method.
testString: 'assert(typeof Dog.prototype.eat == "function", ''<code>Dog</code> should inherit the <code>eat()</code> method from <code>Animal</code>.'');'
testString: 'assert(Dog.prototype.hasOwnProperty(''bark''), ''<code>Dog</code> should have the <code>bark()</code> method as an <code>own</code> property.'');'