Предположим, что у меня есть чистый абстрактный класс (т.е. абстрактный класс без какой-либо реализации):
abstract class A {
abstract m(): void;
}
Как и в С# и Java, я могу расширить абстрактный класс:
class B extends A {
m(): void { }
}
Но, в отличие от С# и Java, я также могу реализовать абстрактный класс:
class C implements A {
m(): void { }
}
Как классы B
и C
ведут себя по-другому? Почему я должен выбирать один или другой?
(В настоящее время TypeScript handbook и спецификация языка не охватывают абстрактные классы.)