diff --git a/8-using-inheritance/inheritance.js b/8-using-inheritance/inheritance.js new file mode 100644 index 0000000..625dd01 --- /dev/null +++ b/8-using-inheritance/inheritance.js @@ -0,0 +1,35 @@ +class Person { + constructor(firstName, lastName) { + this.firstName = firstName; + this.lastName = lastName; + } + toString() { + return `Name: ${this.firstName} ${this.lastName}`; + } + get fullName() { + return `${this.firstName} ${this.lastName}`; + } + get lastName() { + return this._lastName; + } + set lastName(value) { + this._lastName = value; + } +} + +class ReputablePerson extends Person { + constructor(firstName, lastName, rating) { + super(firstName, lastName); + this.rating = rating; + } + toString() { + return `${super.toString()} Rating: ${this.rating}`; + } + get fullName() { + return `Reputed ${this.lastName}, ${super.fullName}`; + } +} + +const alan = new ReputablePerson("Alan", "Turing", 5); +console.log(alan.toString()); +console.log(alan.fullName); diff --git a/8-using-inheritance/using-inheritance.md b/8-using-inheritance/using-inheritance.md index be438e4..44d47cb 100644 --- a/8-using-inheritance/using-inheritance.md +++ b/8-using-inheritance/using-inheritance.md @@ -18,3 +18,8 @@ JavaScript implements **prototypal** inheritance ## Behavior of Get vs. Set - Gets search deep, but sets are always shallow + +## Inheriting from a Class + +- Extending a class +- Overriding methods