Abstracte methoden in OOP in TypeScript
Het komt voor dat afgeleide klassen een
gemeenschappelijke methode moeten hebben,
maar de implementatie van deze methode
afhangt van de specifieke afgeleide klasse. In
dit geval kan deze methode worden gedeclareerd in
de abstracte bovenliggende klasse, zonder
de implementatie ervan te schrijven. En dan zullen
afgeleide klassen verplicht zijn om deze methoden te implementeren. Dergelijke
methoden worden abstracte methoden genoemd en
worden ook gedeclareerd met behulp van het sleutelwoord
abstract.
Laten we voor het voorbeeld onze abstracte
klasse User nemen. Stel dat afgeleide klassen
van deze klasse verplicht een methode show moeten hebben,
die de gegevens van het object weergeeft.
De implementatie van deze methode zal echter
afhangen van de afgeleide klasse. Laten we in de klasse User
deze methode abstract declareren:
abstract class User {
public name: string;
constructor(name: string) {
this.name = name;
}
public abstract show(): string;
}
Laten we deze methode implementeren in de afgeleide klasse Student:
class Student extends User {
public course: number;
constructor(name: string, course: number) {
super(name);
this.course = course;
}
show() {
return this.name + ' ' + this.course;
}
}
Laten we deze methode implementeren in de afgeleide klasse Employee:
class Employee extends User {
public salary: number;
constructor(name: string, salary: number) {
super(name);
this.salary = salary;
}
show() {
return this.name + ' ' + this.salary;
}
}
Maak in de abstracte klasse Figure
abstracte methoden voor het verkrijgen van de oppervlakte
en de omtrek.
Schrijf in de afgeleide klassen Square en
Rectangle de implementatie van deze
methoden.