Abstraktne metode v OOP v TypeScript
Zgodi se, da morajo imeti izpeljani razredi
skupno metodo, vendar je izvedba te metode
odvisna od posameznega potomca. V
tem primeru lahko to metodo deklariramo v
abstraktnem razredu starša, ne da bi napisali
njeno implementacijo. In potem bodo potomci
obvezni implementirati te metode. Takšne
metode imenujemo abstraktne in
so prav tako deklarirane s ključno besedo
abstract.
Vzemimo za primer naš abstraktni razred
User. Naj imajo potomci tega
razreda obvezno metodo show,
ki izpiše podatke objekta.
Izvedba te metode pa bo
odvisna od potomca. V razredu User
deklarirajmo to metodo kot abstraktno:
abstract class User {
public name: string;
constructor(name: string) {
this.name = name;
}
public abstract show(): string;
}
Implementirajmo to metodo v izpeljanem razredu Student:
class Student extends User {
public course: number;
constructor(name: string, course: number) {
super(name);
this.course = course;
}
show() {
return this.name + ' ' + this.course;
}
}
Implementirajmo to metodo v izpeljanem razredu Employee:
class Employee extends User {
public salary: number;
constructor(name: string, salary: number) {
super(name);
this.salary = salary;
}
show() {
return this.name + ' ' + this.salary;
}
}
V abstraktnem razredu Figure naredite
abstraktni metodi za pridobitev površine
in obsega.
V izpeljanih razredih Square in
Rectangle napišite implementacijo teh
metod.