Qrup: 510 Fənn: Proqramlaşdırma dilləri Kafedra



Yüklə 139,8 Kb.
səhifə2/5
tarix17.05.2022
ölçüsü139,8 Kb.
#87234
1   2   3   4   5
proq serbest

2.POLİMORFİZM

Polimorfizm sözü çoxlu formalara malik olmaq deməkdir. Sadə sözlə desək, polimorfizmi mesajın birdən çox formada göstərmə qabiliyyəti kimi müəyyən edə bilərik.Polimorfizmin real həyat nümunəsi kimi, bir insanın eyni zamanda fərqli xüsusiyyətlərə sahib ola bilməsini göstərə bilərik.Məsələn: bir kişi eyni zamanda həm ər, həm ata, həm də işçi ola bilər.Beləliklə, eyni insan müxtəlif vəziyyətlərdə fərqli davranışlara malikdir. Buna polimorfizm deyilir. Polimorfizm obyekt yönümlü proqramlaşdırmanın əsas anlayışlarından biridir və bir şeyin bir neçə fərqli formada baş verdiyi situasiyaları təsvir edir. Obyekt yönümlü proqramlaşdırmada isə bu xüsusiyyət obyektin vahid interfeysə əsaslanmasına və eyni metod adına malik olmasına baxmayaraq, fərqli davrana bilməsi deməkdir.Polimorfizm birdən çox funskiyaya malik olur. Polimorfizm miras ilə birlikdə işlədilir. Polimorfizmlər 2 yerə bölünürlər:



  1. Compile time (kompilyasiya zamanı olan polimorfizm)

  2. Run time (çalışanda olan polimorfizm)

Kompilyasiya vaxtı olan polimorfizm (compile time) funskiyaların həddən artıq yüklənməsi və ya operatorun həddən artıq yüklənməsi ilə əldə edilir.Funksiyaların həddən artıq yüklənməsi function overloading adlanır. Eyni adlı, lakin fərqli parametrlərə malik bir neçə funksiya olduqda, bu funksiyaların həddən artıq yükləndiyi deyilir. Arqumentlərin sayının dəyişməsi və/və ya arqumentlərin növünün dəyişməsi ilə funksiyalar həddən artıq yüklənə bilər.

Çalışanda olan polimorfizm isə bəzən dinamik polimorfizm adlandırılır. Bizim ilk vaxtlar tanış olduğumuz polimorfizm budur. Bu polimorfizm funksiyaya üstünlük verilməsi (function overriding) zamanı həyata keçirilir. Burada dinamik polimorfizmi həyata keçirmək üçün “virtual” açar sözündən isifadə olunur. Virtual funksiyaları ən sonda izah edəcəyəm.

Polimorfizmə aid sadə bir nümunəyə baxaq.Məsələn animalsound() adlı funksiyası olan heyvanlar adlı bir əsas sinif düşünün.Heyvanların alt sinifi pişiklər, donuzlar, itlər quşlar(həm də onların səsləri) və s. ola bilər:

#include

using namespace std;

class Heyvanlar {

public:


void animalsound(){

cout << "Bu heyvan səs çıxarır..." << endl ;

}

};

class it : public Heyvanlar{



public:

void animalsound(){

cout << "It səs çıxarır..." << endl ;

}

};



class donuz : public Heyvanlar{

public:


void animalsound(){

cout << "Donuz səs çıxarır..." << endl ;

}

};

int main(){



Heyvanlar h1;

it i1;


donuz d1;

h1.animalsound();

i1.animalsound();

d1.animalsound();

}

Bu polimorfizmin sadə nümunələrindən biridir. Göründüyü kimi 1 funksiya müxtəlif siniflərdə fərqli cür işlədilə bilər.Bu polimorfizm adlanı.Virtual funskiyalar haqqında ən sonda məlumat verəcəyəm.




Yüklə 139,8 Kb.

Dostları ilə paylaş:
1   2   3   4   5




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©genderi.org 2024
rəhbərliyinə müraciət

    Ana səhifə