В TypeScript наследование классов позволяет создать новый класс, который наследует свойства и методы существующего класса. Это позволяет повторно использовать код и устанавливать иерархические отношения между классами. Когда класс наследуется от другого класса, он наследует все члены (свойства и методы) базового класса, которые затем могут быть расширены или переопределены в производном классе.
Вот некоторые часто используемые методы и приемы, связанные с наследованием классов TypeScript:
- Расширение класса. Чтобы создать производный класс, наследуемый от базового класса, вы можете использовать ключевое слово
extends
. Например:
class BaseClass {
// Base class members
}
class DerivedClass extends BaseClass {
// Derived class members
}
- Переопределение методов. В производном классе вы можете переопределить методы, определенные в базовом классе, переопределив их с помощью ключевого слова
override
. Это позволяет вам предоставить другую реализацию метода. Например:
class BaseClass {
greet() {
console.log("Hello, I'm the base class.");
}
}
class DerivedClass extends BaseClass {
override greet() {
console.log("Hello, I'm the derived class.");
}
}
- Вызов методов базового класса. Внутри производного класса вы можете вызывать методы базового класса, используя ключевое слово
super
. Это полезно, если вы хотите расширить поведение метода базового класса, сохраняя при этом его функциональность. Например:
class BaseClass {
greet() {
console.log("Hello, I'm the base class.");
}
}
class DerivedClass extends BaseClass {
override greet() {
super.greet(); // Calling base class method
console.log("And I'm the derived class.");
}
}
-
Модификаторы доступа: TypeScript предоставляет модификаторы доступа (
public
,protected
иprivate
) для управления видимостью и доступностью класса. члены. Эти модификаторы можно использовать как в базовом, так и в производных классах для определения области действия унаследованных членов. -
Множественное наследование: TypeScript не поддерживает множественное наследование, то есть класс может наследовать только от одного базового класса. Однако вы можете добиться аналогичной функциональности, используя интерфейсы и миксины.