我收到以下错误消息
TypeError: Contract "InterfaceB" should be marked as abstract.
一旦我将合同InterfaceB更改为接口InterfaceB,错误就会消失
代码如下。
pragma solidity ^0.8.0;
contract InterfaceB {
function getMessage() external pure returns(string memory);
}
contract ContractB {
function getMessage() pure external returns(string memory){
return "Hellow World.";
}
}
如何解决此问题
如果要定义接口,必须使用interface
关键字。
interface InterfaceB {
function getMessage() external pure returns(string memory);
}
任何至少有一个未实现函数的契约在Solidity中都被视为抽象的。在您的案例中,您有contract InterfaceB
,它有一个未实现的功能:
function getMessage() external pure returns(string memory);
所以Remix检测到这是一个抽象合同