Sobes.tech
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.
  • static kalit 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)