Contrato abstrato é aquele que contém pelo menos uma função sem qualquer implementação. Esse contrato é usado como um contrato base. Geralmente, um contrato abstrato contém funções tanto implementadas quanto abstratas. O contrato derivado implementará a função abstrata e usará as funções existentes como e quando necessário.
Caso um contrato derivado não esteja implementando a função abstrata, esse contrato derivado será marcado como abstrato.
Exemplo
Experimente o código a seguir para entender como os contratos abstratos funcionam no Solidity.
pragma solidity ^0.5.0;
contract Calculator {
function getResult() public view returns(uint);
}
contract Test is Calculator {
function getResult() public view returns(uint) {
uint a = 1;
uint b = 2;
uint result = a + b;
return result;
}
}
Execute o programa acima usando as etapas fornecidas no capítulo Aplicativo Solidity First .
Resultado
0: uint256: 3