Skip to content

调用父类构造函数

Solidity 中,如果您需要在子合约中使用父合约的构造函数,您可以使用 super 关键字来调用它。

示例

下面是一个简单的 Solidity 程序演示如何调用父合约的构造函数。

solidity
//定义父合约
contract ParentContract {
    uint public value;
    constructor(uint _value) public {
        value = _value;
    }
}

//定义子合约并继承父合约
contract ChildContract is ParentContract {
    constructor(uint _value) ParentContract(_value) public { }
}

//部署合约
ChildContract child = new ChildContract(100);

解释:

在上面的程序中首先定义了一个父合约 ParentContract 并且在构造函数中初始化了一个变量 value

然后我们定义了一个名为 ChildContract 的子合约,并通过关键字“is”来表示 ChildContract 继承了 ParentContract。

在子合约中,我们使用了 super 关键字来调用父合约的构造函数,并传递一个值作为参数。

最后,我们使用 new 关键字来实例化一个 ChildContract 合约,并传递一个值给父合约的构造函数。

请注意,我们定义 ChildContract 构造函数的方法是通过调用父构造函数传递一个值。

这是因为在子合约的构造函数执行前,父构造函数必须要被调用。因此,我们通常都是通过在子构造函数的参数列表中调用父构造函数来实现这一点。

这就是 Solidity 中如何调用父合约构造函数的一个简单演示。