Solidity编程与web3.js入门全解析
一、Solidity合约基础
- 合约继承
- 合约继承是Solidity中一个重要的特性,通过继承,一个合约可以复用另一个合约的代码。例如:
contract sample1 {
function a(){}
function b(){}
}
contract sample2 is sample1 {
function b(){}
}
- 在上述代码中,`sample2` 合约继承自 `sample1` 合约。这意味着 `sample2` 合约可以使用 `sample1` 合约中定义的函数。同时,如果 `sample2` 合约中定义了与 `sample1` 合约中同名的函数,如 `b()` 函数,那么 `sample2` 合约中的 `b()` 函数会覆盖 `sample1` 合约中的 `b()` 函数。
- 对于有多个继承关系的合约,如 `contract sample4 is sample1, sample2`,其继承链是有顺序的。在调用函数时,会根据继承链的顺序来确定调用哪个合约中的函数。例如,在 `sample4` 合约中调用 `b()` 函数时,会调用 `sample2` 合约中的 `b()` 函数,因为 `sample2` 在继承链中排在 `sample1` 之后。
- 下面是一个更复杂的继承示例: