Αφηρημένες Μέθοδοι στην ΑΝΠ στο TypeScript
Συμβαίνει ότι οι κλάσεις-απόγονοι πρέπει
να έχουν μια κοινή μέθοδο, ωστόσο, η υλοποίηση αυτής της
μεθόδου εξαρτάται από τον συγκεκριμένο απόγονο. Σε
αυτήν την περίπτωση, αυτή η μέθοδος μπορεί να δηλωθεί στην
αφηρημένη κλάση του γονέα, χωρίς να γραφεί
η υλοποίησή της. Και τότε οι απόγονοι θα
αναγκαστούν να υλοποιήσουν αυτές τις μεθόδους. Τέτοιες
μέθοδοι ονομάζονται αφηρημένες και
επίσης δηλώνονται χρησιμοποιώντας τη λέξη-κλειδί
abstract.
Ας πάρουμε για παράδειγμα την αφηρημένη μας
κλάση User. Ας υποθέσουμε ότι οι κληρονόμοι αυτής
της κλάσης πρέπει οπωσδήποτε να έχουν τη μέθοδο show,
που εμφανίζει τα δεδομένα του αντικειμένου.
Η υλοποίηση αυτής της μεθόδου, ωστόσο, θα
εξαρτάται από τον απόγονο. Ας δηλώσουμε στην κλάση User
αυτή τη μέθοδο ως αφηρημένη:
abstract class User {
public name: string;
constructor(name: string) {
this.name = name;
}
public abstract show(): string;
}
Ας υλοποιήσουμε αυτή τη μέθοδο στην κλάση-απόγονο Student:
class Student extends User {
public course: number;
constructor(name: string, course: number) {
super(name);
this.course = course;
}
show() {
return this.name + ' ' + this.course;
}
}
Ας υλοποιήσουμε αυτή τη μέθοδο στην κλάση-απόγονο Employee:
class Employee extends User {
public salary: number;
constructor(name: string, salary: number) {
super(name);
this.salary = salary;
}
show() {
return this.name + ' ' + this.salary;
}
}
Στην αφηρημένη κλάση Figure κάντε
αφηρημένες μεθόδους για τη λήψη του εμβαδού
και της περιμέτρου.
Στις κλάσεις-απόγονοι Square και
Rectangle γράψτε την υλοποίηση αυτών των
μεθόδων.