Функция вызова наследования Typescript из базового класса - PullRequest
0 голосов
/ 03 октября 2018

Я использую наследование, чтобы разделить логику по базовому и производному классам.

В следующем сценарии:

export class FirstClass{
constructor(){}

//consoleGivenMessage('dummy text');}

export class SecondClass extends FirstClass{
constructor(){
    super();
}

consoleGivenMessage(text:string){
    console.log(text);
}}

как вызывать функцию из базового класса?Должен ли "consoleGivenMessage(text:string)" быть реализован и в базовом классе?

Любая помощь приветствуется

1 Ответ

0 голосов
/ 03 октября 2018

Короткий ответ на ваш вопрос: вам нужно ввести consoleGivenMessage(text: string) в FirstClass, чтобы вы могли вызывать его как в случаях FirstClass, так и SecondClass.

Однако, есть и другое -

В большинстве случаев вы вызываете унаследованный метод из производного класса, а не наоборот.Но у вас также может быть базовый класс, который зависит от abstract метода, который реализован в производном классе.

Скажем, у вас есть класс A, который зависит от метода DoIt(), который реализован только в производном классе B, вы должны объявить A как абстрактный класс и DoIt() как абстрактный метод;затем в B (который не является абстрактным, то есть конкретным) вы реализуете метод DoIt ().

Это также означает, что вы не можете создать экземпляр объекта Aпотому что он не завершен без полной реализации DoIt, но вы можете создать экземпляр объекта B.Тем не менее, вы можете определить объект A, например: const a: A = new B().И вы можете позвонить a.DoIt().В этом случае реализация B.DoIt() будет фактически вызвана.

Этот метод используется в шаблоне проектирования Template Method .

Классы TypeScript, наследование и абстрактные классы хорошо документированы .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...