Содержание

Абстрактные контракты в Solidity

Функции контракта могут не выполняться, как в следующем примере (заголовок объявления функции завершает ;):

pragma solidity ^0.4.0;

contract Feline {
    function utterance() public returns (bytes32);
}

Такие контракты не могут быть скомпилированы (даже, если наряду с невыполняемыми функции в них содержатся и выполняемые), но они могут использовать в качестве базовых контрактов:

pragma solidity ^0.4.0;

contract Feline {
    function utterance() public returns (bytes32);
}

contract Cat is Feline {
    function utterance() public returns (bytes32) { return "miaow"; }
}

Если контракт наследует от абстрактного контракта и не реализует все невыполняемые функции путем переопределения, то он сам становится абстрактным.

Материал был полезен? Поделитесь в соц. сетях:
Логотип echain.ru

Добавить комментарий

Ваш e-mail не будет опубликован.