Abstrakte metoder i OOP i TypeScript
Det sker, at underklasser skal have
en fælles metode, men implementeringen af denne
metode afhænger af den konkrete underklasse. I
sådanne tilfælde kan metoden erklæres i
den abstrakte forældreklasse uden at skrive
dens implementering. Og så vil underklasserne være
forpligtet til at implementere disse metoder. Sådanne
metoder kaldes abstrakte og
er også erklæret ved hjælp af nøgleordet
abstract.
Lad os for eksempel tage vores abstrakte
klasse User. Antag, at arvinger af denne
klasse skal have en metode show,
som viser objektets data.
Implementeringen af denne metode vil dog
afhænge af underklassen. Lad os i klassen User
erklære denne metode som abstrakt:
abstract class User {
public name: string;
constructor(name: string) {
this.name = name;
}
public abstract show(): string;
}
Lad os implementere denne metode i underklassen Student:
class Student extends User {
public course: number;
constructor(name: string, course: number) {
super(name);
this.course = course;
}
show() {
return this.name + ' ' + this.course;
}
}
Lad os implementere denne metode i underklassen Employee:
class Employee extends User {
public salary: number;
constructor(name: string, salary: number) {
super(name);
this.salary = salary;
}
show() {
return this.name + ' ' + this.salary;
}
}
I den abstrakte klasse Figure skal du lave
abstrakte metoder til at få arealet
og omkredsen.
I underklasserne Square og
Rectangle skal du skrive implementeringen af disse
metoder.