Solidity8.0
17-Solidity8.0覆盖状态变量
前言
覆盖状态变量
与函数不同,状态变量不能通过在子合约中重新声明来覆盖。
让我们学习如何正确覆盖继承的状态变量。
一、Solidity覆盖状态变量
1.覆盖状态变量
代码如下(示例):
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.10;
contract A {
string public name = "Contract A";
function getName() public view returns (string memory) {
return name;
}
}
// 在Solidity 0.6中不允许出现覆盖。
// 这将不会被编译
// contract B is A {
// string public name = "Contract B";
// }
contract C is A {
// This is the correct way to override inherited state variables.
constructor() {
name = "Contract C";
}
// C.getName returns "Contract C"
}
总结
日拱一卒。