roadmap.az

Menyu

JavaScript & DOMDərs 19 / 25

Sinfin irs alması

Ümumi davranışı təkrar yazma

extends törəmə sinif yaradır. Törəmə konstruktor this istifadə etməzdən əvvəl super ilə əsas konstruktoru çağırmalıdır. Əsas metodlar miras alınır; eyni adlı metodla davranışı dəyişmək olar.

class Person {
  constructor(name) { this.name = name; }
  rename(name) { this.name = name; }
  describe() { return this.name; }
}
class Player extends Person {
  constructor(name, level) {
    super(name);
    this.level = level;
  }
  describe() { return `${super.describe()} — səviyyə ${this.level}`; }
}
const player = new Player('Aysel', 3);
player.rename('Leyla');
console.log(player.describe());
Nümunə

Obyekt yönümlü prinsiplər

İrsilik ümumi davranışı törəməyə ötürür. Kapsullama məlumat və onu idarə edən əməliyyatları birləşdirir, lazım gəldikdə daxili detalları gizlədir. Polimorfizm eyni əməliyyat adının müxtəlif tiplərdə fərqli davranmasına imkan verir.

Yalnız həqiqi “bu da həmin tipin bir növüdür” əlaqəsində irsilik seç. Sadəcə kod paylaşmaq üçün çoxpilləli irsilik qurmaq əvəzinə funksiyalar və kompozisiyanı düşün. Admin-ə rol, Player-ə səviyyə əlavə et, ortaq ad dəyişməsini bir yerdə saxla.

Əlavə qeydlər və mənbələr

extends ilə ümumi sinifdən törəmə sinif yarat. super əsas konstruktoru çağırır; ortaq metodları miras al və lazım olduqda davranışı dəyiş. İrsilik, kapsullama və polimorfizmi nümunələrlə ayır.

Niyə vacibdir?

JavaScript istifadəçi hərəkətinə cavab verən və məlumatı emal edən səhifələr yaratmağa imkan verir.

Əvvəlki biliklər

Bu mövzuda

  • extends və super
  • Ortaq və dəyişdirilmiş metodlar
  • İrsilik, kapsullama və polimorfizm

Mövzuya baxış

Mənbələr

Məşqin idarəetməsi
Addım 1 / 3

Ortaq və əlavə xassələri ayır

Ad ortaq məlumatdır, rol isə törəmə tipə əlavə edilir.

Hədəf: Admin rolunu seç.

Canlı nəticə

Giriş{"name":"Aysel"}
Nəticə{"name":"Aysel","role":"reader"}
Mənbə kodu
class Admin extends Person { /* super(name) */ }
new Admin("Aysel", "reader")

Özün sına

Person-dan Admin və Player sinifləri yarat. Ortaq rename metodu və hər törəmə sinfə aid əlavə xassə təyin et.

Nəticəni necə yoxlayım?

Admin və Player ortaq rename davranışını miras alır; super və metodun yenidən təyin olunmasını izah edirsən.

Gözlənilən nəticə

  • Admin edit icazəsini, Player 10 xalını saxlayır.
  • Player adını dəyişmək Admin-ə təsir etmir.
Aysel edit
Ali 10
Nümunə həllə bax

Əvvəl özün sına, sonra müqayisə et. Bu, mümkün həllərdən biridir.

super ortaq xassələri qurur; rename miras alınır. Admin və Player əlavə məlumatlarını ayrıca saxlayır.

main.js

class Person {
  constructor(name) { this.name = name; }
  rename(name) { this.name = name; }
}
class Admin extends Person {
  constructor(name, permissions) { super(name); this.permissions = permissions; }
}
class Player extends Person {
  constructor(name, score) { super(name); this.score = score; }
}
const admin = new Admin('Aysel', ['edit']);
const player = new Player('Zaur', 10);
player.rename('Ali');
console.log(admin.name, admin.permissions[0]);
console.log(player.name, player.score);

Praktikanı bitirdin?Özün qiymətləndirirsən. İrəliləyiş bu brauzerdə saxlanılır.