Abstract classes are base classes that can be extended by other classes. The abstract keyword is used to define abstract classes as well as abstract methods within an abstract class:
abstract class Department { constructor(public name: string) { } public printName(): void { console.log("Department name: " + this.name); } public abstract printMeeting(): void; // must be implemented in derived classes }
The methods in an abstract class that are preceded by the abstract keyword cannot contain an implementation and must be implemented by the derived classes.
Abstract methods may look like interface methods. However, an abstract class may contain implementation details for some of its members:
class AccountingDepartment extends ...