Diferencia entre sobrecarga de métodos y anulación de métodos en Python

Sobrecarga de métodos: 
La sobrecarga de métodos es un ejemplo de polimorfismo de tiempo de compilación. En esto, más de un método de la misma clase comparte el mismo nombre de método con firmas diferentes. La sobrecarga de métodos se usa para agregar más al comportamiento de los métodos y no se necesita más de una clase para la sobrecarga de métodos.
Nota: Python no admite la sobrecarga de métodos. Podemos sobrecargar los métodos, pero solo podemos usar el último método definido.
Ejemplo: 
 

Python3

# Function to take multiple arguments
def add(datatype, *args):
   
    # if datatype is int
    # initialize answer as 0
    if datatype =='int':
        answer = 0
           
    # if datatype is str
    # initialize answer as ''
    if datatype =='str':
        answer =''
   
    # Traverse through the arguments
    for x in args:
   
        # This will do addition if the 
        # arguments are int. Or concatenation 
        # if the arguments are str
        answer = answer + x
   
    print(answer)
   
# Integer
add('int', 5, 6)
   
# String
add('str', 'Hi ', 'Geeks')

Producción: 
 

11
Hi Geeks

Anulación de métodos: 
la anulación de métodos es un ejemplo de polimorfismo en tiempo de ejecución. En esto, la clase secundaria proporciona la implementación específica del método que ya proporciona la clase principal. Se utiliza para cambiar el comportamiento de los métodos existentes y se necesitan al menos dos clases para anular métodos. En la anulación de métodos, la herencia siempre es necesaria, ya que se realiza entre los métodos de la clase principal (superclase) y la clase secundaria (clase secundaria).
Ejemplo de anulación de métodos en python: 
 

Python3

class A:
 
    def fun1(self):
        print('feature_1 of class A')
         
    def fun2(self):
        print('feature_2 of class A')
     
 
class B(A):
     
    # Modified function that is
    # already exist in class A
    def fun1(self):
        print('Modified feature_1 of class A by class B')   
         
    def fun3(self):
        print('feature_3 of class B')
         
 
# Create instance
obj = B()
     
# Call the override function
obj.fun1()

Producción: 
 

Modified feature_1 of class A by class B

  
Diferencia entre la sobrecarga de métodos y la anulación de métodos en Python: 
  
 

S.NO Sobrecarga de métodos Anulación de métodos
1. En la sobrecarga de métodos, los métodos o funciones deben tener el mismo nombre y diferentes firmas. Mientras que en la anulación de métodos, los métodos o funciones deben tener el mismo nombre y las mismas firmas.
2. La sobrecarga de métodos es un ejemplo de polimorfismo en tiempo de compilación. Mientras que la anulación de métodos es un ejemplo de polimorfismo en tiempo de ejecución.
3. En la sobrecarga de métodos, la herencia puede o no ser necesaria. Mientras que en la anulación de métodos, siempre se requiere herencia.
4. La sobrecarga de métodos se realiza entre métodos dentro de la clase. Mientras que la anulación de métodos se realiza entre la clase principal y los métodos de la clase secundaria.
5. Se utiliza para añadir más al comportamiento de los métodos. Mientras que se usa para cambiar el comportamiento de los métodos existentes.
6. En la sobrecarga de métodos, no hay necesidad de más de una clase. Mientras que en la anulación de métodos, se necesitan al menos dos clases.

Publicación traducida automáticamente

Artículo escrito por MKS075 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *