溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

solidity智能合約[36]-連續(xù)繼承與多重繼承

發(fā)布時(shí)間:2020-07-23 08:03:09 來(lái)源:網(wǎng)絡(luò) 閱讀:731 作者:jonson_jackson 欄目:開(kāi)發(fā)技術(shù)

連續(xù)繼承

合約可以被連續(xù)的繼承,在下面的合約中,father繼承了grandfather、son繼承了father。那么son也同樣繼承了grandfather中的狀態(tài)變量和方法。

1
2
3
4
5
6
7
8
9
10
11
12
13
contract grandfather{
   uint public  money=10000;
   function dahan() public pure returns(string){
       return "dahan";
   }
}

contract father is grandfather{

}
contract son is father{

}

連續(xù)繼承重名問(wèn)題

下面的合約中,grandfather合約與 father合約中狀態(tài)變量的名字、函數(shù)的名字都是相同的,這時(shí),son中的狀態(tài)變量money和繼承的函數(shù) 以父類father合約中的狀態(tài)變量和函數(shù)為準(zhǔn)。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
pragma solidity ^0.4.23;


contract grandfather{
   uint public  money=10000;
   function dahan() public pure returns(string){
       return "dahan";
   }
}

contract father is grandfather{
     uint public  money=9999;
    function dahan() public pure returns(string){
       return "alice";
   }
}

contract son is father{
 function getMonry() returns(uint){
       return money;
   }
}

多重繼承

合約可以繼承多個(gè)合約,也可以被多個(gè)合約繼承。如下所示:

1
2
3
4
5
6
7
8
9
10
contract father{
}


contract mother{
}

contract son is father,mother{

}

多重繼承有重名

多重繼承有重名時(shí),繼承的順序時(shí)很重要的,以最后繼承的為主。例如下面的例子中,son合約最后繼承了mother,因此以mother合約中的money=8888為準(zhǔn)。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
contract father is grandfather{
     uint public  money=9999;

    function dahan() public pure returns(string){
       return "alice";
   }
}


contract mother{
   uint public money=8888;
   uint public weight=100;

}

contract son is father,mother{

}
  • 本文鏈接: https://dreamerjonson.com/2018/11/22/solidity-36-inheritdeep/

  • 版權(quán)聲明: 本博客所有文章除特別聲明外,均采用 CC BY 4.0 CN協(xié)議 許可協(xié)議。轉(zhuǎn)載請(qǐng)注明出處!

solidity智能合約[36]-連續(xù)繼承與多重繼承

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI