|
Ishchi vaqtdagi polimorfizm (Runtime polimorfizm)
|
bet | 2/3 | Sana | 25.01.2024 | Hajmi | 23,85 Kb. | | #145302 |
Bog'liq 14-mavzuIshchi vaqtdagi polimorfizm (Runtime polimorfizm)
Dastlab casting, up-casting va down-casting tushunchalari bilan tanishib olaylik (Aslida, ishchi vaqtdagi polimorfizmni tushunish uchun faqat up-casting ni o’zini bilish yetadi, ammo buni to’liqroq yoritamiz). Obyektni bir turdan boshqa turga o’tkazishga (casting) deyiladi. Agar ota klassning obyekti bola klassga o’tkazilsa bu down-casting deyiladi, masalan:
Object satrObject=“Bu shunchaki satr”;//Object–ota class
String satrString=(String)ObyektSatr;//String–Object klassning bola klassi
Yuqoridagi misolda Object turidagi o’zgravchi (satrObject) String turiga o’zgartirilyapti. Bilamizki, Obyekt klass barcha classlarning otasi hisoblanadi.Agar bola klassning obyekti ota klass turiga o’tkazilsa bu up-casting deyiladi, masalan:
String satrString=“Bu shunchaki satr”;
Object satrObject=(Object)satrString;
Agar ota klassning o’zgaruvchisi bola klass obyektini ko’rsatsa (xotiradagi adresini ko’rsatsa) ham up-casting deyiladi.
Misol
class A{}
class B extends A{}
A a = new B();//upcasting
Yuqoridagi misolda A class toifasidagi a o’zgaruvchi (reference variable) B bola klassning obyektini ko’rsatadi (hotiradagi adresini ko’rsatadi). Runtime polimorfizmda bola klassdagi override qilingan metod, ota klass toifasidagi o’zgaruvchi orqali chaqiriladi. Quyidagi misolga qaraymiz:
Misol
class Chevrolet{
void run(){System.out.println("running");}
}
class Malibu extends Chevrolet{
void run(){System.out.println("Chevrolet Malibu");}
public static void main(String args[]){
Chevrolet ch=new Malibu();//upcasting
ch.run();
}}
Natija
Chevrolet Malibu
Yuqoridagi misolda biz ikkita klass yaratyapmiz. Malibu klass Chevrolet klass dan nasl olayapti va run() funksiyani qayta yozayapti (override). Qayta yozilgan run funksiya ota klass turidagi o’zgaruvchi ch orqali chaqirilayapti. ch o’zgaruvchi Malibu turidagi obyektni ko’rsatayotgani uchun Malibu klassda qayta yozilgan funksiya chaqiriladi.
|
| |