solidity智慧合約[34]-合約繼承與可見性
阿新 • • 發佈:2018-11-25
繼承
繼承是面嚮物件語言的重要特徵。繼承是為了模擬現實中的現象,並且可以簡化程式碼的書寫。
例如貓與夠都屬於動物。他們都繼承動物的某些特徵。
繼承語法
當前合約繼承父類合約的屬性和方法。
1 |
contract 合約名 is 父類合約名{ |
繼承與可見性
public
狀態變數預設是public的型別,可以被繼承,可以在外部與內部被呼叫
1 |
contract father{ |
函式預設為public屬性,可以被繼承,可以在外部與內部被呼叫
1 |
contract father{ |
internal
當為狀態變數添加了inernal屬性,仍然可以被繼承,internal屬性只能夠被合約中的方法呼叫,不能夠在外部被直接呼叫。
1 |
contract father{ |
當為函式添加了inernal屬性,仍然可以被繼承,internal屬性只能夠被合約中的方法呼叫,不能夠在外部被直接呼叫。
1 |
contract father{ |
external
狀態變數沒有external屬性,但是函式有。
當為函式加上external屬性後,意味著合約只能夠在外部被呼叫,不能夠在內部被呼叫。
如果想合約在內部被呼叫,需要使用到如下this.函式
的方式:
1 |
contract father{ |
能夠呼叫external的第二種方式。
1 |
contract father{ |
本文連結: https://dreamerjonson.com/2018/11/22/solidity-34-inherit/
版權宣告: 本部落格所有文章除特別宣告外,均採用 CC BY 4.0 CN協議 許可協議。轉載請註明出處!