Skip to main content

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 χρησιμοποιείται για να καλέσει μια μέθοδο από την υπερκλάση. Αυτό γίνεται με δύο τρόπους:

  1. Στον constructor της υποκλάσης: super(...) για να καλέσει τον constructor της υπερκλάσης.
  2. Σε μια μέθοδο της υποκλάσης: super.method(...) για να καλέσει μια μέθοδο της υπερκλάσης.

Στη συνέχεια, προσθέτει το πεδίο language και τη μέθοδο sayLanguage() στην κλάση Developer.