17-dars - Overriding (qayta yuklash) Funksiyalari
Agar subclassimizdagi (bola klass) funksiya super(ota klass) klassimizdagi funksiya bilan bir xil bo'lsa, bu funksiyalar qayta yuklanuvchi funksiyalar deyiladi.
Javada qayta yuklanuvchi funksiyadan foydalanish:
- Qayta yuklanuvchi funksiyadan avvaldan Ota klassda yaratib qo'yilgan funksiyaning o'ziga xos amalga oshirilishini ta'minlashda;
- Qayta yuklanuvchi funksiyaning ishchi vaqt (runtime)da (ko'p formalik) polymorphismda
foydalaniladi.
Javada Qayta yuklanuvchi funksiya uchun qoidalar:
- Funksiya super klass(ota) dagi funksiya nomi bilan bir xil bo'lishi kerak
- Funksiya super klass(ota )dagi funksiya parametrlari bilan bir xil bo'lishi lozim
- Klass meros olgan bo'lishi kerak
class Vehicle { void run() { System.out.println("Vehicle is running"); } } class Bike2 extends Vehicle { void run() { System.out.println("Bike is running safely"); } public static void main(String args[]){ Bike2 obj = new Bike2(); obj.run(); }
ekranda : Bike is running safely
Bu misolda run() funksiyasi sub klass va super klasslarda yaratilgan. Bu funksiyalarni nomi va parametrlari o'xshash va klasslar bir-biri bilan bog'langan, shuning uchun qayta yuklanuvchi funksiyalar hosil bo'lyapti.
Static funksiyalar hech qachon qayta yuklanuvchi funksiya bo'lmaydi. Chunki static funksiyalar klass bilan bog'langan va u obyekt bilan bog'liq. Main funksiyalari ham qayta yuklanmaydi, chunki u static funksiyadir.
Yuklanma funksiya |
Qayta yuklanuvchi funksiya |
Yuklanma funksiya klass ichida bo'ladi | Qayta yuklanuvchi funksiya ikkita klass ichida bo'ladi, ya'ni bir-biri bilan bog'langan klasslarda. |
Yuklanma funksiya parametrlari har xil bo'ladi | Qayta yuklanuvchi funksiya parametrlari bir xil bo'lishi shart |
Yuklanma funksiyada polemorfizm kompilyatsiya vaqtida ishlatiladi | Qayta yuklanuvchi funksiyada polemorfizmdan runtime da foydalaniladi |
Yuklanma funksiyada qaytarayotgan ma'lumot turlari o'xshashi yoki o'xshamasligi mumkin | Qayta yuklanuvchi funksiya qaytarayotgan ma'lumot turlari o'xshash bo'lishi kerak |
Birinchi bo‘ling!