Aún no tienes acceso a esta clase

Crea una cuenta y continúa viendo este curso

Curso de Introducción a Solidity

Curso de Introducción a Solidity

Sebastián Leonardo Perez

Sebastián Leonardo Perez

Polimorfismo

18/21
Recursos

Aportes 5

Preguntas 1

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.

Polimorfismo

Capacidad de poder utilizar contratos derivados en estructuras superiores.

Aquí podemos ver un ejemplo gráfico de como funciona el polimorfismo

Esta clase le falta herramientas graficas para mejorar su entendimiento, el mismo instructor se marea con un juego de palabras y términos de su localidad.

Una convencion en las ´interfaces´ es llevar una i delante del nombre.

Interfaces solo definen encabezados pero no pueden tener una implementacion en la red. No podemos hacer el deploy pero si podemos usar un contrato que lo implemente.

Polimorfismo

// SPDX-License-Identifier: GPL-3.0

pragma solidity >=0.7.0 <0.9.0;

import "./Interface.sol";

contract Polimorfismo {
    
    function sumarDesdeContrato(uint numero1, uint numero2, address direccionContrato)
        public returns(uint) {  
            Suma interfaceSuma = Suma(direccionContrato);
            return interfaceSuma.sumar(numero1,numero2);
    } 
    
}

ImplementacionSuma.sol

// SPDX-License-Identifier: GPL-3.0

pragma solidity >=0.7.0 <0.9.0;

import "./Interface.sol";

contract ImplementacionSuma is Suma {
    
    function sumar(uint numero1, uint numero2) public override pure returns (uint) {
        return numero1 + numero2;
    }
    
}

Interface.sol

// SPDX-License-Identifier: GPL-3.0

pragma solidity >=0.7.0 <0.9.0;

interface Suma {
    
    function sumar(uint numero1, uint numero2) external returns (uint);
    
}

Con el polimorfismo pudimos usar la suma que esta en otro contrato porque no llamamos directamente a la implementación de Suma sino que hicimos la llamada a la Interface, a pesar de que las interfaces no pueden ser implementadas en la red, pero con Polimorfismo pudimos hacerlo.

Me parece que se puede mejorar la explicación y ejemplo sobre polimorfismo, instanciando varios contratos y mostrando como ante la ejecución del mismo método el comportamiento es diferente. Y quizás suma mencionar ligadura dinámica y estática de código, ya que si SOLIDITY es OO deberia contar con esta habilidad. Saludos