Junior
Proqramlaşdırmada metodların yüklənməsində nə dəyişdirilə bilər?
sobes.tech Süni İntellekt
AI-dan cavab
Yöntəm çoxaltması zamanı (method overloading) aşağıdakıları dəyişdirmək mümkündür:
- Parametrlərin sayı: Eyni adda metodlar müxtəlif sayda formal parametrlərə malik ola bilər.
- Parametrlərin növləri: Eyni adda və eyni sayda parametrlərə malik metodlar bu parametrlərin növləri ilə fərqlənə bilər.
- Parametrlərin növlərinin ardıcıllığı: Əgər metodların parametrlərinin sayı və növləri eynidirsə, lakin onlar fərqli ardıcıllıqda yerləşibsə, bu da çoxaltma sayılır.
Java nümunəsi:
// Çoxaltılmış metodlara malik sinif
class Calculator {
// İki tam ədədin cəmi metodu
public int add(int a, int b) {
return a + b;
}
// Çoxaltılmış metod: üç tam ədədin cəmi
public int add(int a, int b, int c) {
return a + b + c;
}
// Çoxaltılmış metod: ondalıklı ədədlərin cəmi
public double add(double a, double b) {
return a + b;
}
// Çoxaltılmış metod: tam ədəd və ondalıklı ədədin cəmi
public double add(int a, double b) {
return a + b;
}
// Çoxaltılmış metod: ondalıklı ədəd və tam ədədin cəmi
public double add(double a, int b) {
return a + b;
}
}
Yaxınlaşdırıla bilməyən hallar:
- Qaytarma növü: Eyni adda və eyni imzaya (sayı, növlər və ardıcıllıq) malik iki metod yalnız qaytarma növü ilə fərqlənə bilməz.
- Giriş modifikatorları: Giriş modifikatorları (public, private, protected, default) çoxaltmaya təsir etmir.
staticaçar sözünün mövcudluğu və ya olmaması: Statik metod çoxaltıla bilməz; eyni imzaya malik qeyri-statik metod təyin etməklə və ya əksinə, çoxaltma mümkün deyil.- Metodun istisna siyahısı: İstisna siyahısı metodun imzasına daxil deyil və çoxaltma zamanı nəzərə alınmır.
Çoxaltma və üst-üstə qoyma metodlarının müqayisəsi:
| Xüsusiyyət | Çoxaltma (Overloading) | Üst-üstə qoyma (Overriding) |
|---|---|---|
| Harada baş verir | Eyni sinifdə və ya siniflər hiyerarşisində | Törəmə sinifdə |
| Metodun adı | Eyni | Eyni |
| Metodun imzası | Fərqli (sayı, növlər, ardıcıllıq) | Eyni |
| Qaytarma növü | Fərqli ola bilər (yalnız fərq deyil) | Eyni və ya kovarianta (obyektlər üçün) |
| Məqsəd | Müxtəlif tiplər və ya arqumentlərin sayı üçün bir əməliyyatın müxtəlif variantlarını təqdim etmək | Törəmə sinifdə miras alınmış metodun davranışını dəyişmək |
| Metodlar arasındakı əlaqə | Müstəqil metodlar | "Məxsus" əlaqə (miras alınması) |
| Polimorfizm | Kompilyasiya mərhələsində (statik) | İcrada mərhələsində (dinamik) |