iT邦幫忙

2024 iThome 鐵人賽

DAY 14
0
佛心分享-IT 人自學之術

區塊鏈技術應用系列 第 14

Solidity中的Inheritance與Polymorphism

  • 分享至 

  • xImage
  •  

繼承 (Inheritance)
繼承允許建立新的合約,這些合約可以基於已有的合約進行擴展和修改。子合約會自動繼承父合約的所有狀態變量和函數。
https://ithelp.ithome.com.tw/upload/images/20240927/201692384pVwLHE2Oh.png
在這個例子中,Child 繼承了 Parent 合約。這意味著 Child 合約擁有 Parent 的所有狀態變量 (parentValue) 和函數 (setParentValue()),並可以自己添加新的狀態變量和函數。
重寫 (Override)
子合約可以重寫父合約的函數,但必須使用 override 關鍵字,父合約中的函數需要標註為 virtual。
https://ithelp.ithome.com.tw/upload/images/20240927/20169238DVEKY0lVOW.png
多態 (Polymorphism)
多態指的是當一個父合約引用子合約的實例時,子合約可以通過父合約的指針調用它的函數。
https://ithelp.ithome.com.tw/upload/images/20240928/20169238y3Msx41x6w.png
在這個例子中,Test 合約的 callGetMessage 函數可以接受 Parent 類型的參數,並調用 getMessage。即使傳入的是 Child 合約的實例,它會調用 Child 中重寫的函數。

  • 父合約中的函數必須顯式標記為 virtual 才能被重寫,重寫時則需使用 override

上一篇
Solidity的Modifiers與Events
系列文
區塊鏈技術應用14
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言