【开发智能合约—Solidity系列】何谓继承(Inheritance)

一个功能越趋完善且复杂的合约,势必会拆成许多合约共同组成,而其实这些组成的合约之中许多的方法、元素都是重复的,因此我们可以使用Inheritance(继承)的技巧,将共同的属性、方法抽到某个上级合约,而其余的合约只要继承自上级合约,就能减少重复开发的状况,我们都知道软体开发的过程,只要开发的原始码越多,维护的成本与复杂度就会越高,而这样的技巧就是在避免当功能越来越复杂时,导致无法维护甚至难以阅读。

基本用法

在Solidity的世界里,继承自谁的关键字就是「is」,基本结构如下:

继承自单一的来源

基本上最简单的用法就是撰写一份公共合约,而未来重复使用的子合约就继承自公共合约即可,这是最基本的单一继承。

首先我们先撰写一份公共合约

可以传入标题,并取得标题。

我们带入_title参数并Deploy之后,初始值就设定为「i am Basic」,并呼叫getTitle之后可以得到正确的讯息。

撰写一份Basic0合约继承自Basic并带入初始值

我们在选择合约的地方下拉换成Basic0并Deploy,接着呼叫getTitle()之后就会得到「i am Basic0」。

撰写一份Basic1合约继承自Basic并由外部带入初始值

我们在选择合约的地方下拉换成Basic1并Deploy,接着填入参数,最后呼叫getTitle()之后就会得到「i am Basic1」。

多重继承

多重继承的强大之处在于可以继承自多个来源,但请慎用,多重继承有其方便之处,但若没有职责分离很容易继承到四不像的状况,最终让合约更加复杂就失去了继承的用意了。

Basic2可以分别存取到Basic以及Basic0的可视属性及方法,此为多重继承。

结语

这次学习到「继承」的妙用,相信聪明的你也应该很容易联想,就如同我们承袭自父母的特性(身高、个性、….),其实软体开发的概念有时候真的非常贴近现实世界,也终于进到了Ep.9,不知不觉写了这么多笔记教学,希望这些教学对于刚接触智能合约的朋友们有所帮助,加油,让我们将Solidity的特性学习完成之后,接下来就是赶快开发一个实际的智能合约的应用啰!

本文链接地址:https://www.wwsww.cn/jishu/14175.html
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。