35、Solidity 编程深入解析:多态、函数重载、库的使用及底层函数

Solidity 编程深入解析:多态、函数重载、库的使用及底层函数

1. 多态的应用

多态允许合约在执行时使用 doSomething 函数的正确实现,尽管合约仅知晓基合约。在进行操作时,需将相关代码中的地址替换为你机器上的实际地址,因为每次部署都会生成新的地址,所以无法预测在 Remix 实例中的地址样式。之后,编译并部署 PolymorphismTest 合约,执行 testPolymorphism 函数。若传入参数 5,应会得到元组 (10, 15) 作为结果。

即便你不了解第三方合约的具体实现,但只要知道它继承的基合约或实现的接口,借助多态,就可通过其地址使用该第三方合约。

2. 函数重载

Solidity 支持函数重载,允许开发者在使用不同参数时使用相同的函数名。当调用已部署合约的函数时,以太坊 ABI 总是使用函数签名哈希的前四个字节,即函数选择器。交易中调用函数时,会包含函数选择器,其后跟随函数参数。函数签名仅考虑函数名和参数类型,而非参数名称。因此,函数可通过改变参数类型实现重载,但不能通过更改参数名称、函数修饰符或返回类型来实现。

以下是示例代码:

contract Base {
    function doSomething(uint x) public pure returns(uint) {
        return x;
    }
    function doSomething(uint x, ui
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值