1. Kitlər və inəklər
Belə maraqlı bir zooloji fakt var: inək kitdən, məsələn, suaygırından daha yaxındır. Məlum olur ki, inəklər və kitlər — yaxın qohumdurlar.

Beləliklə. Sizə OOP-nin daha bir çox güclü alətindən bəhs edək — bu polimorfizmdir. Onun dörd xüsusiyyəti var.
2. İrsi əlaqə — həmişə çıxış yolu deyil
Təsəvvür et ki, sən oyun üçün İnək
sinfini yazmısan. Bunun içində çoxlu fields və metodlar var. Bu class-ın obyektləri müxtəlif işlər görə bilir: yeriş etmək, yemək yemək, yatmaq. Bir də inəklər gəzdikdə zəng çalır. Deyək ki, sən bu sinfdə hər şeyi detallı şəkildə yerinə yetirdin.
Amanda layihə sifarişçisi gəlir və deyir ki, oyunun yeni bir səviyyəsini buraxmaq istəyir. Yeni səviyyədə bütün hərəkətlər dənizdə olacaq və əsas qəhrəman kit olacaq.
Sən Kit
sinfini layihələndirməyə başlayırsan və anlayırsan ki, o yalnız bir az İnək
sinfindən fərqlənir. Hər iki sinfin iş məntiqi çox bənzəyir və sən irsi əlaqədən istifadə etmək qərarına gəlirsən.

İnək
sinfi parent class roluna ideal uyğun gəlir: onun içində lazım olan bütün dəyişənlər və metodlar var. Yalnız kita üzmək imkanını əlavə etmək qalır. Amma bir problem var: sənin kitinin ayaqları, buynuzları və zəngi var. Axı bu funksionallıq İnək
sinfinin içində reallaşdırılıb. İndi nə etmək olar?

3. Metodun Yenidən Təyin Edilməsi
Bizə metodların yenidən təyin edilməsi (dəyişdirilməsi) kömək edir. Əgər biz miras aldığımız metodun bizim yeni sinifdə istədiyimiz şeyi tam yerinə yetirmədiyini görsək, həmin metodu dəyişdirə bilərik.

Bəs bu necə edilir? Biz varis sinifimizdə üst sinifin dəyişdirmək istədiyimiz metodu ilə eyni addan olan bir metod elan edirik. Oraya yeni kod yazırıq. Vəssalam: elə bil üst sinifdə köhnə metod heç mövcud olmayıb.
Bu necə işləyir:
Kod | Təsvir |
---|---|
|
|
|
Bu kod ekrana aşağıdakı yazını çıxaracaq: |
|
Bu kod ekrana çıxaracaq: |
Cow
sinifindən miras alıb və printName
metodunu yenidən təyin etdikdən sonra, Whale
sinifi əslində aşağıdakı məlumatlara və metodlara sahibdir:
|
Köhnə metoddan heç xəbərimiz də yoxdur. |
GO TO FULL VERSION