Junior
Programlamada yöntem aşırı yüklemesinde ne değiştirilebilir?
sobes.tech yapay zeka
AI'dan gelen yanıt
Method overloading (metot aşırı yükleme) sırasında şu değişiklikler yapılabilir:
- Parametre sayısı: Aynı isimdeki metodlar farklı sayıda parametre alabilir.
- Parametre tipleri: Aynı isimde ve aynı sayıda parametreye sahip metodlar, parametre tipleriyle farklılık gösterebilir.
- Parametrelerin sıralaması: Parametre sayısı ve tipleri aynı olsa bile, sıralama farklıysa, bu da aşırı yükleme olarak kabul edilir.
Java örneği:
// Aşırı yüklenmiş metodlara sahip sınıf
class Calculator {
// İki tam sayı toplayan metod
public int add(int a, int b) {
return a + b;
}
// Aşırı yüklenmiş metod: üç tam sayı toplayan
public int add(int a, int b, int c) {
return a + b + c;
}
// Aşırı yüklenmiş metod: iki ondalıklı sayıyı toplayan
public double add(double a, double b) {
return a + b;
}
// Aşırı yüklenmiş metod: tam sayı ve ondalıklı sayı toplayan
public double add(int a, double b) {
return a + b;
}
// Aşırı yüklenmiş metod: ondalıklı sayı ve tam sayı toplayan
public double add(double a, int b) {
return a + b;
}
}
Değiştirilemeyecekler:
- Dönüş tipi: Aynı isim ve imzaya sahip iki metod, sadece dönüş tipiyle farklı olamaz.
- Erişim belirteçleri: public, private, protected, default gibi erişim belirteçleri aşırı yüklemeyi etkilemez.
staticanahtar kelimesinin varlığı veya yokluğu: Statik bir metodun, aynı imzaya sahip statik olmayan bir metodla aşırı yüklenmesi veya tam tersi mümkün değildir.- Metodun attığı istisnalar: İstisna listesi, metodun imzasının bir parçası değildir ve derleyici tarafından aşırı yüklenmiş metodların ayırt edilmesinde kullanılmaz.
Aşırı yükleme ve metodların geçersiz kılınması (override) karşılaştırması:
| Özellik | Overloading (Aşırı yükleme) | Overriding (Geçersiz kılma) |
|---|---|---|
| Nerede gerçekleşir | Aynı sınıf içinde veya sınıf hiyerarşisinde | Alt sınıfta |
| Metodun adı | Aynı | Aynı |
| Metodun imzası | Farklı (parametre sayısı, tipleri, sıralaması) | Aynı |
| Dönüş tipi | Farklı olabilir (ama tek fark olmamalı) | Aynı veya kovaryant (nesne için) |
| Amacı | Aynı işlemin farklı veri tipleri veya argüman sayılarıyla çeşitli versiyonlarını sunmak | Miras alınan metodun davranışını alt sınıfta değiştirmek |
| Metodlar arasındaki ilişki | Bağımsız metodlar | "Bir tür" ilişkisi (kalıtım) |
| Polimorfizm | Derleme zamanında polimorfizm (statik) | Çalışma zamanında polimorfizm (dinamik) |