Guruh talabasi Majidov Husanboyning mqudv


Download 473.6 Kb.
bet4/6
Sana14.12.2020
Hajmi473.6 Kb.
#166422
1   2   3   4   5   6
Bog'liq
Android Studio 1-oraliq Nazorat

Runtime polimorfizm


Dastlab casting, up-casting va down-casting tushunchalari bilan tanishib olaylik (Aslida, runtime polimorfizmni tushunish un faqat up-casting ni o'zini bilish yetadi, ammo men to'lqiroq yozdim). Obyektni bir toifadan boshqa toifaga o'tkazishgacasting deyiladi.

Agar ota classning obyekti bola class toifasga o'tkazilsa bu down-casting deyiladi. Misol:



Object satrObject = "Bu shunchaki satr"; // Object - ota class

String satrString = (String)ObyektSatr; // String - Object classning bola classi

Yuqoridagi misolda Object toifasidagi o'zgravchi (satrObject) String toifasiga o'zgartirilayapti. Bilamizki, Obyekt class barcha classlarning otasi hisoblanadi.

Agar bola classning obyekti ota class toifasga o'tkazilsa bu up-casting deyiladi. Misol:

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

Overloading metodlar-Java va boshqa ko'plab dasturlash tillarida overloading metodlar tushunchasi mavjud, agar bitta class yoki subclassda bir nechta bir xil nomli metodlar elon qilingan bo'lsa bular overloading metodlar deyiladi. Overloading metodlar o'zi bilan bir xil nomga ega bo'lgan va bitta classda joylashgan boshqa metoddan butunlay farq qiladi. Boshqacha aytganda overloading metodlar orqali bitta classda bir xil nomli bir nechta metod yaratish imkoniga ega bo'lamiz.

overloading metodlar polimorfizmning imkonyatlaridan foydalanishga qo'l keladi,, agar dasturchilar bir biriga o'xshash operatsiyalar bajaradigan metodlarni bir xil nom bilan eslab qolmoqchi bo'lsa, dasturchi overloading metodlardan foydalanadi bunda har metodlar nomi bir xil ammo parametrlari soni va tipi boshqa boshqa bo'ladi. Kompilator metod tipi va parametrlari soni bilan aynan qaysi metodga murojat qilinayotganini aniqlab oladi.

Misol uchun burcha nomli Overloading metodlar:

public void burchak(int alfa){//Sizning kodingiz}

public void burchak(int alfa, int burchaklar_soni){//Sizning kod}

public void burchak(int alfa, String burchak_turi){//Sizning kod}

yana bir misol

class B

{

public void aMethod (byte x)

{

System.out.println("byte x: " + x);



}

public void aMethod (short x)

{

System.out.println("short x: " + x);



}

public void aMethod (int x)

{

System.out.println("int x: " + x);



}

public void aMethod (long x)

{

System.out.println("long x: " + x);



}

public void aMethod (float x)

{

System.out.println("float x: " + x);



}

public void aMethod (double x)

{

System.out.println("double x: " + x);



} }

Overraiding metodlar-Agar class ichidagi metod sub classdagi biron metod bilan bir xil nomga ega bo'lsa bunda class ichidagi metod Overraiding metodlar sifatida yaratiladi.

class Animal

{

Animal myType()



{ return new Animal();

}}class Dog extends Animal

{

Dog myType() //Legal override after Java5 onward



{

return new Dog();



} }

method overloading va method overraiding ning ularning farqlari



overloading metod overraiding metod

Parametrlari har xil va nomi bir xil bo'lishi shart Parametrlari har xil va nomi bir xil bo'lishi shart

polimorfizmdan foydalanadi polimorfizmdan foydalanadi

  1. LinerLayout va uning atributlari

Download 473.6 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling