Apstraktne metode u OOP u TypeScript
Dešava se da klase-naslednici moraju imati
zajednički metod, međutim, implementacija tog
metoda zavisi od konkretnog naslednika. U
tom slučaju ovaj metod se može deklarisati u
apstraktnoj klasi roditelja, bez pisanja
njegove implementacije. I tada će naslednici
biti obavezni da implementiraju ove metode. Takvi
metodi se nazivaju apstraktnim metodama i
takođe se deklarišu uz pomoć ključne reči
abstract.
Uzmimo za primer našu apstraktnu klasu
User. Neka naslednici ove
klase obavezno moraju imati metod show,
koji prikazuje podatke objekta.
Implementacija ovog metoda, međutim, će
zavisiti od naslednika. Hajde da u klasi User
deklarišemo ovaj metod kao apstraktni:
abstract class User {
public name: string;
constructor(name: string) {
this.name = name;
}
public abstract show(): string;
}
Implementirajmo ovaj metod u klasi-nasledniku 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 ovaj metod u klasi-nasledniku Employee:
class Employee extends User {
public salary: number;
constructor(name: string, salary: number) {
super(name);
this.salary = salary;
}
show() {
return this.name + ' ' + this.salary;
}
}
U apstraktnoj klasi Figure napravite
apstraktne metode za dobijanje površine
i obima.
U klasama-naslednicima Square i
Rectangle napišite implementaciju ovih
metoda.