Metodin ylikuormituksen ja menetelmän ohituksen välillä on monia eroja javassa. Alla on luettelo eroista menetelmän ylikuormituksen ja menetelmän ohituksen välillä:
Ei. | Menetelmän ylikuormitus | Menetelmän ohittaminen |
---|---|---|
1) | Menetelmän ylikuormitusta käytetään luettavuuden lisäämiseksi ohjelmasta. | Käytetään menetelmän ohittamista tarjota erityistä toteutusta menetelmästä, jonka sen superluokka jo tarjoaa. |
2) | Menetelmän ylikuormitus suoritetaan luokan sisällä . | Menetelmän ohittaminen tapahtuu kahdessa luokassa joilla on IS-A (perintö)suhde. |
3) | Jos menetelmä on ylikuormitettu, parametrin on oltava erilainen . | Jos menetelmä ohitetaan, parametrin on oltava sama . |
4) | Menetelmän ylikuormitus on esimerkki käännä aikapolymorfismi . | Menetelmän ohittaminen on esimerkki ajonaikainen polymorfismi . |
5) | Javassa menetelmän ylikuormitusta ei voi suorittaa muuttamalla vain menetelmän palautustyyppiä. Palautustyyppi voi olla sama tai erilainen menetelmän ylikuormituksessa. Mutta sinun on muutettava parametria. | Palautustyypin on oltava sama tai kovariantti menetelmän ohittamisessa. |
Esimerkki Java-menetelmän ylikuormituksesta
class OverloadingExample{ static int add(int a,int b){return a+b;} static int add(int a,int b,int c){return a+b+c;} }
Java-menetelmän ohitusesimerkki
class Animal{ void eat(){System.out.println('eating...');} } class Dog extends Animal{ void eat(){System.out.println('eating bread...');} }