Inheritance and Polymorphism
Abstract Classes
Abstract classes share implementation while requiring subclasses to fill in missing behavior.
Abstract Classes
abstract.ts
abstract class Shape {
abstract area(): number;
describe(): string {
return `area=${this.area()}`;
}
}
class Square extends Shape {
side: number;
constructor(side: number) {
super();
this.side = side;
}
area(): number {
return this.side * this.side;
}
}
const side: number = ;
const shape: Shape = new Square(side);
console.log(shape.describe());
abstract class Shape {
abstract area(): number;
describe(): string {
return `area=${this.area()}`;
}
}
class Square extends Shape {
side: number;
constructor(side: number) {
super();
this.side = side;
}
area(): number {
return this.side * this.side;
}
}
const side: number = ;
const shape: Shape = new Square(side);
console.log(shape.describe());
abstract class Shape {
abstract area(): number;
describe(): string {
return `area=${this.area()}`;
}
}
class Square extends Shape {
side: number;
constructor(side: number) {
super();
this.side = side;
}
area(): number {
return this.side * this.side;
}
}
const side: number = ;
const shape: Shape = new Square(side);
console.log(shape.describe());
abstract class
An abstract class can contain shared code and abstract methods that subclasses must implement.