类似java中的抽象类,抽象合约至少包含一个没有实现的函数(抽象函数)。通常,抽象合约作为父合约,被用来继承,在继承合约中实现抽象函数,抽象合约也可以包含有实现的函数。
如果派生合约没有实现抽象函数,则该派生合约也将被标记为抽象合约。
示例
尝试下面的代码,来理解抽象合约是如何工作的。
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;
}
}
可以参考Solidity – 第一个程序中的步骤,运行上述程序。
输出
0: uint256: 3