Extends Keyword
Η λέξη κλειδί extends
χρησιμοποιείται για να δηλώσει ότι μια κλάση κληρονομεί από μια άλλη.
Ας πάρουμε το προηγούμενο παράδειγμα με την κλάση Person
και να δημιουργήσουμε μια νέα κλάση Developer
που κληρονομεί από την Person
:
class Person {
constructor(name, age) {
this.name = name;
this.age = age;
}
sayHello() {
console.log(
`Hello, my name is ${this.name} and I am ${this.age} years old.`
);
}
}
// Η κλάση Developer κληρονομεί από την κλάση Person
class Developer extends Person {
constructor(name, age, language) {
super(name, age);
this.language = language;
}
sayLanguage() {
console.log(`I am a developer and I code in ${this.language}.`);
}
}
const john = new Developer('John', 30, 'JavaScript');
john.sayHello(); // "Hello, my name is John and I am 30 years old."
Η κλάση Developer
κληρονομεί από την κλάση Person
χρησιμοποιώντας τη λέξη-κλειδί extends
.
super()
Η μέθοδος constructor
της Developer
καλεί τη μέθοδο constructor
της Person
χρησιμοποιώντας την super()
. Γενικότερα, το λεκτικό super
χρησιμοποιείται για να καλέσει μια μέθοδο από την υπερκλάση. Αυτό γίνεται με δύο τρόπους:
- Στον constructor της υποκλάσης: super(...) για να καλέσει τον constructor της υπερκλάσης.
- Σε μια μέθοδο της υποκλάσης: super.method(...) για να καλέσει μια μέθοδο της υπερκλάσης.
Στη συνέχεια, προσθέτει το πεδίο language
και τη μέθοδο sayLanguage()
στην κλάση Developer
.