17-Solidity8.0覆盖状态变量

本文介绍了在Solidity 8.0中如何正确覆盖父合约的状态变量。与函数不同,状态变量不能简单地通过重新声明来覆盖。正确的做法是在子合约的构造函数中初始化这些状态变量,如示例代码所示。文章强调了在覆盖状态变量时的正确实现方式。
摘要由CSDN通过智能技术生成

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"
}


总结

日拱一卒。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值