Differenza chiave – Sovraccarico e sovrascrittura in Java
La programmazione orientata agli oggetti (OOP) è un paradigma importante nello sviluppo di software. È una metodologia per progettare un programma utilizzando classi e oggetti. Una classe è un progetto. Descrive cosa dovrebbe contenere nell'oggetto. Definisce le proprietà o gli attributi e i metodi in cui dovrebbe essere costituito l'oggetto. Pertanto, un oggetto è un'istanza di una classe. Questi oggetti comunicano con altri oggetti. Uno dei concetti principali di OOP è il polimorfismo. È la capacità di un oggetto di comportarsi in più modi. Il polimorfismo è classificato in due sezioni che sovraccaricano e sovrascrivono. Questo articolo discute la differenza tra questi due in Java. La differenza fondamentale tra l'overloading e l'override in Java è che l'Overloading è la capacità di creare più metodi con lo stesso nome con implementazioni diverse e l'override è quello di fornire un'implementazione per un metodo di sottoclasse che esiste già nella superclasse.
Cos'è il sovraccarico in Java?
L'overloading è la capacità di creare più metodi con lo stesso nome con implementazioni diverse. Fare riferimento al codice Java sottostante.
Figura 01: Programma Java che spiega il sovraccarico con un numero diverso di argomenti
Secondo il programma sopra, la classe A contiene due metodi con lo stesso nome. Il primo metodo di somma ha due parametri. Il secondo metodo di somma ha tre parametri. Quando si crea un oggetto di tipo A e si chiama sum(2, 3), chiamerà il metodo sum con due parametri che sono sum(int a, int b) e restituisce 5. Quando si crea un oggetto di tipo A e si chiama sum(2, 3, 4), chiamerà l' altro metodo sum con tre parametri che è sum(int a, int b, int c) e restituisce 9.
Il nome del metodo è lo stesso ma il numero dei parametri è diverso. Si può osservare che lo stesso oggetto si comporta in modo diverso. Questo concetto è noto come sovraccarico. Viene anche indicato come associazione statica o polimorfismo temporale di compilazione.
Può anche essere sovraccaricato con diversi tipi di dati. Fare riferimento al codice Java sottostante.
Figura 02: Programma Java che spiega il sovraccarico con un numero diverso di argomenti
Secondo il programma sopra, la classe A consiste in due metodi con lo stesso nome. Il metodo sum(int a, int b) riceve due valori interi. La somma(doppia a doppia b) riceve due valori doppi. Quando si crea l'oggetto di tipo A e si chiama sum(2, 3), chiamerà sum(int a, int b) e restituirà il valore 5. Quando si chiama sum(3.4, 5.6), chiamerà sum(double a double b) e restituire il valore 9.0. In questo esempio, i metodi hanno lo stesso nome, ma un diverso tipo di variabili. Anche questo sta sovraccaricando.
Cos'è l'override in Java?
In Java, è possibile creare sottoclassi con classi già esistenti. Anziché creare la nuova classe dall'inizio, è possibile utilizzare le proprietà ei metodi della classe già esistente. La classe esistente è la superclasse e la classe derivata è la sottoclasse. Quando la sottoclasse fornisce un'implementazione per un metodo, che è già nella superclasse, è noto come override. Fare riferimento al programma Java sottostante.
Figura 03: Programma Java per l'override
Secondo il programma sopra, la Classe A ha un metodo display(). La classe B si estende dalla classe A, quindi le proprietà e i metodi della classe A sono accessibili dalla classe B. La classe B ha il metodo display() con un'implementazione specifica. Quando si crea un oggetto di tipo A e si chiama il metodo di visualizzazione, verrà restituito l'output B. Anche se la classe A ha un metodo di visualizzazione, viene sovrascritto dal metodo di visualizzazione della classe B. La sottoclasse sta implementando un metodo già esistente nella superclasse.
Questo concetto è un tipo di polimorfismo noto come overriding. Viene anche chiamato Late Binding, Dynamic Binding, Runtime Polymorphism.
Quali sono le somiglianze tra sovraccarico e sovrascrittura in Java?
- Entrambi sono tipi di polimorfismo.
- Nell'override e nell'override, i metodi hanno lo stesso nome.
Qual è la differenza tra sovraccarico e sovrascrittura in Java?
Sovraccarico vs Override in Java |
|
Il sovraccarico in Java è la capacità di creare più metodi con lo stesso nome con implementazioni diverse. | L'override in Java fornisce un'implementazione specifica nel metodo della sottoclasse per un metodo già esistente nella superclasse. |
Parametri | |
Nell'overloading, i metodi hanno lo stesso nome ma un diverso numero di parametri o un diverso tipo di parametri. | In sovrascrittura, i metodi hanno lo stesso nome e i parametri devono essere gli stessi. |
Temi | |
Si verifica un sovraccarico all'interno della classe. | L'override si verifica all'interno delle due classi che hanno una relazione di ereditarietà. |
Sinonimi | |
Il sovraccarico è chiamato polimorfismo del tempo compilato. | L'override è chiamato polimorfismo del tempo di esecuzione. |
Riepilogo – Sovraccarico vs Override in Java
Il polimorfismo è un concetto importante nella programmazione orientata agli oggetti. Fornisce la capacità di un oggetto di comportarsi in più modi. Questo può essere di sovraccarico o di override. L'overload è il polimorfismo in fase di compilazione e l'override è il polimorfismo di runtime. Sono utili nello sviluppo di applicazioni software. La differenza tra l'override e l'overloading è che l'overloading è la capacità di creare più metodi con lo stesso nome con implementazioni diverse e l'override fornisce un'implementazione specifica nel metodo della sottoclasse per un metodo già esistente nella superclasse. È possibile implementare sia l'override che l'override in Java.
Scarica il PDF Sovraccarico vs Sovrascrittura in Java
Puoi scaricare la versione PDF di questo articolo e usarla per scopi offline come da nota di citazione. Si prega di scaricare la versione PDF qui Differenza tra sovraccarico e sovrascrittura in Java