大家好,这里是通学技术,欢迎大家继续跟我一起学习智能合约系列。
13、面向对象–合约的继承
相信能看到这里的人,想必都是有经验的开发人员了,坚持不懈,耐得住寂寞。
solidity作为一种图灵完备的面向对象的编程语言,必然同其他面向对象的语言一样,拥有继承这一特性。
我们就主要来看看它是怎么来表示继承的吧!
pragma solidity ^0.4.16;
contract Father{
uint money = 10000;
function noSmoking() public returns(string){
return "I'm not somking";
}
}
contract Son is Father{
function getMoney() returns(uint){
return money;
}
}
关于solidity的继承很简单,语法便是:儿子是父亲。
我们分别部署父亲合约和儿子合约,执行后则可得到如下结果:

我们可以看出,我父亲的钱就是我的钱。(以后有遗产税,可就不能这么说了哈)。我爸爸不抽烟,我继承了我爸爸的意志,也不抽烟。
关于继承,就介绍到这里哈。
14、对象的连续继承
为了简化学习成本,这里不做过多描述,我们的solidity和其他高级语言类似,继承特性是支持传递的。
这里面包含了合约的属性和合约的行为。也就是说,我爷爷的是我爸爸的,也是我的。
15、遗传特性–继承中的权限
我们应该都学过,鲁迅先生的《拿来主义》这篇文章吧,对于继承,我们也应当有这种不能全盘否定,也不能照单全收的想法,那么怎么做到有的放矢呢?我们可以通过权限来控制。
爸爸的优点,我们要继承,爸爸的恶习,我们当然要拒绝。
pragma solidity ^0.4.16;
contract Father{
// 爸爸的私房钱 不可以被继承
uint private privateMoney = 2000;
// 可以被继承
// uint privateMoney

最低0.47元/天 解锁文章
6485

被折叠的 条评论
为什么被折叠?



