Solidez: conceptos básicos de la interfaz

Las interfaces son lo mismo que los contratos abstractos creados mediante una palabra clave de interfaz , también conocida como contrato abstracto puro. Las interfaces no tienen ninguna definición ni variables de estado, constructores ni ninguna función con implementación, solo contienen declaraciones de funciones, es decir, las funciones en las interfaces no tienen declaraciones. Las funciones de Interfaz sólo pueden ser de tipo externo. Pueden heredar de otras interfaces, pero no pueden heredar de otros contratos. Una interfaz puede tener enumeraciones, estructuras a las que se puede acceder mediante la notación de puntos del nombre de la interfaz.

Ejemplo: En el siguiente ejemplo, el contrato thisContract implementa una interfaz InterfaceExample e implementa todas las funciones de la interfaz.

Solidity

// Solidity program to 
// demonstrate the working 
// of the interface
  
pragma solidity 0.4.19;
  
// A simple interface
interface InterfaceExample{
  
    // Functions having only 
    // declaration not definition
    function getStr(
    ) public view returns(string memory);
    function setValue(
      uint _num1, uint _num2) public;
    function add(
    ) public view returns(uint);
}
  
// Contract that implements interface
contract thisContract is InterfaceExample{
  
    // Private variables
    uint private num1;
    uint private num2;
  
    // Function definitions of functions 
    // declared inside an interface
    function getStr(
    ) public view returns(string memory){
        return "GeeksForGeeks";
    }
      
     // Function to set the values 
    // of the private variables
    function setValue(
      uint _num1, uint _num2) public{
        num1 = _num1;
        num2 = _num2;
    }
      
    // Function to add 2 numbers 
    function add(
    ) public view returns(uint){
        return num1 + num2;
    }
      
}
  
contract call{
      
    //Creating an object
    InterfaceExample obj;
  
    function call() public{
        obj = new thisContract();
    }
      
    // Function to print string 
    // value and the sum value
    function getValue(
    ) public returns(uint){
        obj.getStr;
        obj.setValue(10, 16);
        return obj.add();
    }
}

Producción : 

Interface Example

Publicación traducida automáticamente

Artículo escrito por jeeteshgavande30 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 *