抽象合约(abstract)
- 如果未实现合约中的至少一个函数,则必须将合约标记为 abstract。 即使实现了所有功能,合约也可能被标记为 abstract。
- 当合约中至少有一个函数没有被实现,或者合约没有为其所有的基类合约构造函数提供参数时,必须将合约标记为 abstract 。
- 如果合约继承自抽象合约,并且没有通过重写来实现所有未实现的函数, 它依然需要标记为抽象 abstract 合约.
- 使用关键字
abstract
定义抽象合约合约
例如:
pragma solidity >=0.6.0 <0.9.0;
abstract contract Feline {
function utterance() public pure returns (bytes32);
}
contract Cat is Feline {
function utterance() public pure returns (bytes32) { return "miaow"; }
}