Merhaba Arkadaslar,
Bu yazimda Overloaded ve Overridden kavramlari arasindaki farklardan ve triklerden bahsedecegim. Son 2 yazida Overriden ve Overloaded konusunu incelemistik, henuz incelememiz gereken bir kac detay durum daha var bunlara sirasi gelince deginecegiz.
Arguman tipi
- Overloaded metotlarda mutlaka degismek zorundadir.
- Overridden metotlarda mutlaka ayni olmalidir.
Donus tipi
- Overloaded metotlarda degisebilir, sorun cikartmaz.
- Overridden metotlarda , covariant return ( ilerleyen yazilarda deginecegim) haric , degisemez.
Exceptions(Istisnalar)
- Overloaded metotlarda degisebilir, eklenebilir sorun cikartmaz.
- Overridden metotlarda checked exception eklenemez fakat cikartilabilir.
- Unchecked exception eklenebilir/cikartilabilir. (Exception konusuna ilerleyen zamanlarda gelecegiz )
Erisim belirteci
- Overloaded metotlarda degisebilir.
- Overridden metotlarda daha az kisitlamali olacak sekilde degisebilir. public metodu private/protected/varsayilan erisim belirteci olacak sekilde override edemeyiz.
Metot Cagrilmasi
- Overloaded metotlarda referans tipi /reference type onemlidir ve argumanin tipine gore secim yapilmaktadir. ( Argumanin tipine gore secimle ilgili detayli bir overloaded yazisi ekleyecegim )
- Overloaded metotlar compile/derleme zamaninda hangi metodun cagrilacagi belirlenir.
- Overridden metotlarda objenin turu/ object type onemlidir.
- Overridden metotlarda calisma/runtime zamaninda dinamik olarak hangi metodun cagrilacagi objenin turune gore belirlenir. Buna Dynamic Method Dispatch denilir.
Buradaki her bir maddeyi ozumseyerek ornekler yaparak %100 anlamak gerekmektedir