В этом руководстве вы узнаете о наследовании классов JavaScript с помощью примеров.
Наследование класса
Наследование позволяет вам определить класс, который берет все функциональные возможности от родительского класса и позволяет вам добавлять больше.
Используя наследование классов, класс может наследовать все методы и свойства другого класса.
Наследование - это полезная функция, позволяющая повторно использовать код.
Чтобы использовать наследование классов, вы используете extends
ключевое слово. Например,
// parent class class Person ( constructor(name) ( this.name = name; ) greet() ( console.log(`Hello $(this.name)`); ) ) // inheriting parent class class Student extends Person ( ) let student1 = new Student('Jack'); student1.greet();
Вывод
Привет Джек
В приведенном выше примере Student
класс наследует все методы и свойства Person
класса. Следовательно, Student
класс теперь будет иметь name
свойство и greet()
метод.
Затем мы получили доступ к greet()
методу Student
класса, создав student1
объект.
Ключевое слово JavaScript super ()
super
Ключевое слово , используемое внутри дочернего класса обозначает его родительский класс. Например,
// parent class class Person ( constructor(name) ( this.name = name; ) greet() ( console.log(`Hello $(this.name)`); ) ) // inheriting parent class class Student extends Person ( constructor(name) ( console.log("Creating student class"); // call the super class constructor and pass in the name parameter super(name); ) ) let student1 = new Student('Jack'); student1.greet();
Здесь super
внутренний Student
класс относится к Person
классу. Следовательно, когда Student
вызывается конструктор класса, он также вызывает конструктор Person
класса, который назначает ему свойство name.
Переопределение метода или свойства
Если дочерний класс имеет то же имя метода или свойства, что и родительский класс, он будет использовать метод и свойство дочернего класса. Эта концепция называется переопределением метода. Например,
// parent class class Person ( constructor(name) ( this.name = name; this.occupation = "unemployed"; ) greet() ( console.log(`Hello $(this.name).`); ) ) // inheriting parent class class Student extends Person ( constructor(name) ( // call the super class constructor and pass in the name parameter super(name); // Overriding an occupation property this.occupation = 'Student'; ) // overriding Person's method greet() ( console.log(`Hello student $(this.name).`); console.log('occupation: ' + this.occupation); ) ) let p = new Student('Jack'); p.greet();
Вывод
Привет, студент Джек. род занятий: Студент
Здесь occupation
свойство и greet()
метод присутствуют в родительском Person
и дочернем Student
классах. Следовательно, Student
класс переопределяет occupation
свойство и greet()
метод.
Использование наследования
- Поскольку дочерний класс может наследовать все функции родительского класса, это позволяет повторно использовать код.
- Как только функциональность разработана, вы можете просто унаследовать ее. Не нужно изобретать велосипед. Это позволяет сделать код более чистым и проще в обслуживании.
- Поскольку вы также можете добавлять свои собственные функции в дочерний класс, вы можете наследовать только полезные функции и определять другие необходимые функции.