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