Solidity - 抽象合约2025 年 5 月 27 日 | 4 分钟阅读 与其他编程语言不同,solidity 也有抽象合约的概念。在 Solidity 中,抽象合约是可以被其他合约使用的容器。 本教程将涵盖有关抽象合约的所有细节,包括其定义、语法、示例及其说明。 让我们开始吧! 涵盖的主题
什么是抽象合约?"抽象合约是 Solidity 合约,其中包含至少一个没有实现的函数。它们也用于用户未指定基本合约构造函数任何参数的情况。另一个合约可以继承此合约并实现其自己的代码。" 抽象合约是其他合约可以使用的容器。它们用作父合约,因此其所有变量和函数都可以被子合约继承和使用。 抽象合约通常用于用户不想直接添加任何合约,从而创建合约的情况。 抽象合约无法编译,因为它缺少实现代码,但可以用作基本合约。 因此,无法在 Solidity 中创建抽象合约的实例。 它仅定义您的合约的结构,继承的子合约进一步提供函数的实现。 语法 可以使用 abstract 关键字在 solidity 中声明抽象合约。 语法如下所示 示例示例 1:演示抽象合约示例,同时使用抽象合约和另一个使用该合约的合约。 使用合约 示例:在下面的 Solidity 代码中,创建了一个名为“AbstractExample' 的抽象合约。 抽象合约充当父合约,并进一步由另一个名为“childContract”的子合约继承。 默认情况下,子合约拥有继承抽象合约函数的全部权限。 让我们探索一下如何完成它。 要获取输出,首先编译如下所示的代码 ![]() 如果直接部署代码,它将显示警告错误,指出“此合约可能是抽象的,它可能未完全实现抽象父合约的方法,或者它可能未正确调用继承合约的构造函数。” 要防止这种情况,请转到“部署”选项,从“合约”字段中选择“objectContract”。 选择它后,部署代码。 ![]() 转到你的合约并单击 gVal 方法,你将在控制台窗口中获得以下输出。 参考下图 ![]() 说明 如果你注意到抽象合约 'AbstractExample' 仅定义你的合约的结构,其中包含三个不同的函数,但没有任何实现。 合约是一个抽象合约,其中包含一些没有实现的函数。 继承的子合约* 'childContract' * 进一步提供了函数的实现。 gVal() 和 setVal() 函数声明用于从合约中获取值,而 sum() 函数用于将从 setValues() 函数中检索到的两个给定数字相加。 稍后,我们正在创建一个 AbstractExample 'abe' 的对象,它在 call 合约中创建了 childContract 的一个实例,该合约使用合约的变量并调用父类的函数。 注意事项
|
我们请求您订阅我们的新闻通讯以获取最新更新。