String satrString = "Bu shunchaki satr";
Object satrObject = (Object)satrString;
Agar ota classning o'zgaruvchisi bola class 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 classning obyektini ko'rsatadi (hotiradagi adresini ko'rsatadi).
Runtime polimorfizmda bola classdagi override qilingan metod, ota class toifasidagi o'zgaruvchi orqali chaqiriladi. Quyidagi misolga qarang:
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();
}
}
Naija:
CHevrolet Malibu
Yuqoridagi misolda biz ikkita class yaratayapmiz. Malibu class Chevrolet class dan nasl olayapti va run() metodni qayta yozayapti (override). Qayta yozilgan run metod ota class toifasidagi o'zgaruvchi ch orqali chaqirilayapti. ch o'zgaruvchi Malibu toifasidagi obyektga ko'rsatayotgani uchun Malibu classda qayta yozilgan metod chaqiriladi.
Javada ikki xil class mavjud ular abstract, va abstract-bo’lmagan classlar
Abstract kalit so'zi bilan yaratilgan classlar abstrakt classlar deb nomlanadi. Abstract classlar abstakt metodlar (tanasi yozilmagan metod) yoki abstrakt bo'lmagan metodlardan (tanasi yozilgan metod) tashkil topgan bo'ladi.
Abstrakt class quyidagicha e'lon qilinadi:
abstract class A{}
Abstrakt klaslar odatda super(ota) klaslar yaratishda ishlatiladi.
Abstract kalslardan yaratilayotgan klaslarimizni sxemasni yani skletini yaratishda foydlaniladi.
Abstract klasimizda undan meros oladigan klaslar uchun umumiy bo’lgan metodlar, konstantlar, o’zgaruvchilar e’lon qilinadi.
Tanasi (implementation) yozilmagana va abstract kalit so'zi bilan yaratilgan metod — abstrakt metod deyiladi.
Do'stlaringiz bilan baham: |