Solidity中的多线继承

  • Louis
  • 发布于 2024-06-22 12:21
  • 阅读 1602

在Solidity中的继承这篇文章中,我介绍了solidity中关于继承的相关概念和例子。本篇文章,我们来一起探讨一个更加复杂的话题多线继承。基本概念Solidity支持多线继承,即一个合约可以同时继承多个基类合约。这可以使合约代码更加简洁,更容易复用代码

Solidity中的继承这篇文章中,我介绍了solidity中关于继承的相关概念和例子。本篇文章,我们来一起探讨一个更加复杂的话题多线继承

基本概念

Solidity支持多线继承,即一个合约可以同时继承多个基类合约。这可以使合约代码更加简洁,更容易复用代码

让我们看一个简单的例子:

代码实现

pragma solidity ^0.8.24;

contract A {
    function foo() public pure virtual returns (string memory) {
        return "A";
    }
}

contract B {
    function bar() public pure virtual returns (string memory) {
        return "B";
    }
}

contract C is A, B {
    function foo() public pure override returns (string memory) {
        return "C";
    }

    function bar() public pure override returns (string memory) {
        return "C";
    }

    function baz() public pure returns (string memory) {
        return "C";
    }
}

在这个例子中,合约 C 继承了合约 AB。这意味着 C 合约拥有所有来自 AB 合约的函数和状态变量。

C 合约中,函数 foo()bar()override 关键字标记。这意味着 C 合约提供了这两个函数的自定义实现,而不是使用来自基类合约的实现。

函数 baz()C 合约的唯一新函数。

部署示例展示

01.png

我们只需要部署合约C,从打...

剩余50%的内容订阅专栏后可查看

点赞 1
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
Louis
Louis
web3 developer,技术交流或者有工作机会可加VX: magicalLouis