Наследование в JavaScript

Что такое наследование?

Наследование означает получение некоторых свойств от родителя. Если один из ваших объектов хочет иметь некоторые свойства, унаследованные от родительского класса, вам необходимо наследование. В большинстве языков объектно-ориентированного программирования есть ключевое слово «расширить». В Javascript это было недолго. В этом уроке я покажу, как использовать наследование в JS на очень простом примере.

Собака и кошка - это животные, и у них одинаковые свойства, например, они оба спят, едят, гуляют и т. Д. Эти свойства могут быть достигнуты как животные из родительского класса «Animal». Но оба издают разные звуки. Звук будет иметь разные свойства для каждого животного. Давайте посмотрим на это в действии.

Животное:

'use strict'

class Animal {
    constructor(animal) {
        this.animal = animal;
    }

    eat() {
        console.log(this.animal + ' eats ');
    }

    walk() {
        console.log(this.animal + ' walks ');
    }
}

module.exports = Animal;

Собака:

const Animal = require('./animal')
class Dog extends Animal{
    constructor(){
        super('Dog');
    }

    sound(){
        console.log('Dog sounds like Geow Geow');
    }
}
module.exports = Dog;

Кот:

const Animal = require('./animal')
class Cat extends Animal{
    constructor(){
        super('Cat');
    }

    sound(){
        console.log('Cat sounds like Meow Meow...');
    }
}
module.exports = Cat;

Главный:

const Animal = require('./animal');
const Cat = require('./cat');
const Dog = require('./dog');



console.log('********** CAT ***********');
let c = new Cat();
c.sound();
c.eat();
c.walk();

console.log('********** DOG ***********');
let d = new Dog();
d.sound();
d.eat();
d.walk();

Вывод:

********** КОШКА ***********
Кот звучит как Мяу Мяу…
Кот ест
Кот гуляет
** ******** СОБАКА ***********
Собака звучит как Гео Гео
Собака ест
Прогулка с собакой