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
function open() public virtualpuede reemplazarse.overridees ortografía obligatoria en el reemplazo.super.open()todavía corre el registro del padre.
Palabras clave y builtins usados aquí
addressboolcontractemiteventexternalfunctionispublicrequiretrue
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.
Paso 1 de 4 en Composición; paso 17 de 28 en Fundamentos del lenguaje.