typestar

Herencia en Solidity

virtual invita a sobreescribir; super alcanza al padre.

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.24;

// virtual invites an override; super reaches the parent's code.
contract Gate {
    event Opened(address by);

    function open() public virtual {
        emit Opened(msg.sender);
    }
}

contract LockedGate is Gate {
    bool public unlocked;

    function unlock() external {
        unlocked = true;
    }

    function open() public override {
        require(unlocked, "locked");
        super.open();
    }
}

Cómo funciona

  1. function open() public virtual puede reemplazarse.
  2. override es ortografía obligatoria en el reemplazo.
  3. super.open() todavía corre el registro del padre.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
24
Caracteres a escribir
411
Tokens
73
Ritmo de tres estrellas
60 tpm

Al ritmo de tres estrellas de 60 tokens por minuto, este intento toma unos 73 segundos.

Escribe este fragmento

Paso 1 de 4 en Composición; paso 17 de 28 en Fundamentos del lenguaje.

← Anterior Siguiente →