Solidity
介面覆蓋
我有兩個契約。其中一個繼承另一個。在父契約里面我有介面
interface Token { function transfer(address to, uint256 value) external returns (bool); }
我想覆蓋子契約中的一個
interface Token { function transfer(address to, uint256 value) external returns (bool); function balanceOf(address who) external view returns (uint256); }
但編譯器顯示 DeclarationError: Identifier already declared。
有沒有辦法覆蓋介面?
根據定義,任何介面都可以被具有相同 ABI 的任何實際函式覆蓋,但不允許有 N 個介面對於某些成員相同(繼承圖不容易定義覆蓋中的優先級!)
換句話說,如果您想為第一個功能提供一個介面,則無需在新介面中重複該功能:只需收集所需的其他功能並保持第一個介面不變。