Polimorfismo
Capacidad de poder utilizar contratos derivados en estructuras superiores.
Por qué debes aprender Solidity
Conoce qué es Solidity
La importancia de la web3 y Solidity
Introducción a la programación con Solidity
Estructura de un contrato
Variables y tipos de datos
Structs y arrays
Mappings y enums
Estructuras de control
Eventos
Funciones
Funciones
Modificadores
Manejo de errores
Gestionando costos
Tipos de almacenamiento
Gas y comisiones
Transferencias de ether desde un contrato
Recibir ether desde un contrato
Conceptos avanzados
Manejo de dependencias y librerÃas
Herencia
Polimorfismo
Tokens
Application Binary Interface (ABI)
Cómo continuar mi camino desarrollando en Blockchain
Cómo continuar mi camino con Solidity
Aún no tienes acceso a esta clase
Crea una cuenta y continúa viendo este curso
Aportes 5
Preguntas 1
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
¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.