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. |