Sombreamento de Variáveis de Estado Herdadas

# Sombreamento de Variáveis de Estado Herdadas

Ao contrário das funções, as variáveis de estado não podem ser substituídas por declaração no contrato de classe filho.

Vamos aprender como substituir corretamente variáveis de estado herdadas.

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

contract A {
    string public name = "Contract A";

    function getName() public view returns (string memory) {
        return name;
    }
}

// Sombreamento não é permitido no Solidity 0.6
// ISTO NÃO VAI COMPILAR
// contrato B é A {
//     string public name = "Contract B";
// }

contract C is A {
    // Esta é a forma correta de substituir variáveis de estado herdadas.
    constructor() {
        name = "Contract C";
    }

    // C.getName retorna "Contract C"
}

# Teste no Remix

Last Updated: 22/01/2024 22:26:13