Polimorfizm (Polymorphism) Allamov O OOP o’zi nima? - OOP asosiy 3 ta hususiyatdan iborat bo’lishi kerak.
- Vorislik (Inheritance)
- Polimorfizm (Polymorphism)
- Inkapsulyatsiya (Incapsulation)
Polimorfizm (Polymorphism) Polimorfizm. Poli – ko’p, morfe – shakl degan ma’noni bildiradi. C++ tili bir xil nomdagi funksiya turli ob’yektlar tomonidan ishlatilganda turli amallarni bajarish imkoniyatini ta’minlaydi. Polimorfizm – shaklning ko’p xilligidir. Polimorfizm (Polymorphism) Polimorfizm – bu kodning, bajarilish paytidan yuzaga keladigan holatga bog’liq ravishda o’zini turlicha amal qilish xususiyatidir. Polimorfizm – bu faqat ob’yektlar xususiyati bo’lmasdan, balki funksiyalar-a’zolar xususiyatidir va ular xususan, bitta nomdagi funksiya-a’zoni, har xil turdagi argumentlarga ega va bajaridagan amali unga uzatiladigan argumentlar turiga bog’liq bo’lgan funksiyalar uchun (o’rnida) foydalanish imkoniyatida namoyon bo’ladi. Bu holatga funksiyalarni qayta yuklash (overload) deyiladi. Polimorfizm amallarga ham qo’llanishi mumkin, ya’ni amal mazmuni (natijasi) operand (berilgan) turiga bog’liq bo’ladi. Polimorfizmning bunday turiga amallarni qayta yuklash deyiladi. Polimorfizm (Polymorphism) Polimorfizmning yana bir ta’rifi quyidagicha: polimorfizm – bu tayanch sinfga ko’rsatgichlarning (murojaatlarning), ularni virtual funksiyalarni chaqirishdagi turli shakl (qiymatlarni) qabul qilish imkoniyatidir. C++ tilining bunday imkoniyati kechiktirilgan bog’lanish natijasidir. Kechiktirilgan bog’lanishda chaqiriladigan funksiya-a’zolar adreslari dastur bajarilishi jarayonida dinamik ravishda aniqlanadi. An’anaviy dasturlash tillarida esa bu adreslar statik bo’lib, ular kompilyasiya paytida aniqlanadi (oldindan bog’lanish). Kechiktirilgan bog’lanish faqat virtual funksiyalar uchun o’rinli. Ishlash vaqtidagi ko‘p sh.(Runtime Polymorphism) Ishlash vaqtidagi ko‘p sh.(Runtime Polymorphism) Ishlash vaqtidagi ko‘p sh.(Runtime Polymorphism) Parametric Polymorphism (Compile-Time Polymorphism) Parametric Polymorphism (Compile-Time Polymorphism) Ad-hoc Polymorphism (Overloading) Ad-hoc Polymorphism (Overloading) Coercion Polymorphism (Casting) Polimorfizm (Polymorphism) - Bitta interfeys, bir nechta metod. Yani metodlarni overloadi. Bu degani bitta metod har hil tofadagi tiplarni qabul qilib natijasini chiqarib beradi. Misol uchun sum funksiyasi faqat int,int yoki float,float yoki float,int va hk qabul qilib natijani chiqarib beradi
class Animal {
public:
void talk() {
cout<<"Salom";
}
}
class Dog:public Animal {
public:
void talk() {
cout<<"WowWow“;
}
}
class Cat:public Animal {
public:
void talk() {
cout<<"Meow“;
}
}
class Odam:public Animal {
}
void main() {
Cat e;
Dog d;
Odam o;
e.talk();
d.talk();
o.talk();
}
}
Natija:
Meow
WowWow
Salom
Polymorphism
Do'stlaringiz bilan baham: |