solidity入门学习——继承(一)

一、和其他高级语言一样,solidity也有继承模块。首先我们定义一个马(ma)的合约,同时定义一个骡子(luozi)的合约,contract luozi is ma的意思是说明合约骡子继承了合约马。在马合约中,我们定义了属性legs等于4,当骡子继承了马之后,可以直接调用马的属性,在下面代码中,当我们输出骡子的legs属性时,继承了父类的属性,输出4。

pragma solidity^0.5.0;
contract ma{
    uint legs=4;
}
contract luozi is ma{
    function getLegs()public view returns (uint){
        return legs;
    }
}

二、方法的继承。我们还是让合约骡子来继承合约马,在马合约中定义方法pao,会输出“benchi”,然后我们为骡子定义一个方法inheritTest,让这个方法调用pao这个方法。虽然在合约骡子中没有定义pao方法,但是由于骡子继承了马,所以还是可以输出字符串“benchi”。
需要注意的是,如图中1处所示,需要用子类来部署合约。
在这里插入图片描述

pragma solidity^0.5.0;
contract ma{
    function pao() public pure returns(string memory){
        return "benchi";
    }
}
contract luozi is ma{
    function inheritTest() public pure returns(string memory){
       return pao();
   }
}
发布了9 篇原创文章 · 获赞 2 · 访问量 2960

猜你喜欢

转载自blog.csdn.net/qinmiaofu/article/details/103986838