Junior
Dasturlashda metodlarni ortiqcha yuklashda nima o'zgartirilishi mumkin?
sobes.tech AI
AIdan javob
Method overloading (method overloading) bo'lishi mumkin:
- Parametrlarning soni: Bir xil nomli metodlar turli formal parametrlar soniga ega bo'lishi mumkin.
- Parametr turlari: Bir xil nom va parametrlar soniga ega metodlar, parametr turlari bilan farq qilishi mumkin.
- Parametrlarning tartibi: Agar metodlar parametrlar soni va turlari bilan bir xil bo'lsa, lekin tartibi bilan farq qilsa, bu ham overload hisoblanadi.
Java misoli:
// Overload qilingan metodlarga ega sinf
class Calculator {
// Ikki butun sonni qo'shish metodi
public int add(int a, int b) {
return a + b;
}
// Overload qilingan metod: uchta butun sonni qo'shish
public int add(int a, int b, int c) {
return a + b + c;
}
// Overload qilingan metod: ikkita o'zgaruvchan nuqtali sonlarni qo'shish
public double add(double a, double b) {
return a + b;
}
// Overload qilingan metod: butun va o'zgaruvchan nuqtali sonlarni qo'shish
public double add(int a, double b) {
return a + b;
}
// Overload qilingan metod: o'zgaruvchan nuqtali va butun sonlarni qo'shish
public double add(double a, int b) {
return a + b;
}
}
Nima o'zgartirilmasligi kerak:
- Qaytish turi: Ikki metod bir xil nom va imzoga ega bo'lsa (parametrlar soni, turlari va tartibi), faqat qaytish turi bilan farq qilmasligi kerak.
- Kirish modifikatorlari: public, private, protected, default kabi kirish modifikatorlari overloadga ta'sir qilmaydi.
statickalit so'zining mavjudligi yoki yo'qligi: Statik metodni, uning imzosi bilan statik bo'lmagan metod bilan overload qilish mumkin emas, va aksincha.- Metod tomonidan chiqarilgan istisnolar ro'yxati: Istisno ro'yxati metod imzosining bir qismi emas va kompilator overload metodlarni ajratishda foydalanmaydi.
Overloading va metodlarni override qilishni taqqoslash:
| Xususiyat | Overloading (Method overloading) | Overriding (Method overriding) |
|---|---|---|
| Qayerda yuz beradi | Bir sinf ichida yoki sinf hierarhiyasida | Ota sinfda |
| Metod nomi | Bir xil | Bir xil |
| Metod imzosi | Turli (parametrlar soni, turlari, tartibi) | Bir xil |
| Qaytish turi | Turli bo'lishi mumkin (lekin yagona farq emas) | Toki bir xil yoki kovariant (obyektlar uchun) |
| Ma'nosi | Bir xil amal uchun turli ma'lumot tiplari yoki argumentlar soni uchun variantlar taqdim etish | Meros olingan metodning xulqini o'zgartirish (child classda) |
| Metodlar o'rtasidagi bog'liqlik | Mustaqil metodlar | "Bu" bo'lish (meros olish) |
| Polimorfizm | Kompilyatsiya vaqtida polimorfizm (statik) | Ishga tushirish vaqtida polimorfizm (dinamik) |