مشخصات مقاله
آموزش وراثت در زبان سالیدیتی
وراثت راهی برای گسترش عملکرد یک قرارداد است. Solidity از وراثت تک و چندگانه پشتیبانی می کند. در ادامه نکات برجسته کلیدی در این رابطه آمده است.
- یک قرارداد مشتق شده می تواند به تمام اعضای غیر خصوصی از جمله روش های داخلی و متغیرهای State دسترسی داشته باشد. اما استفاده از آن مجاز نیست.
- ما می توانیم تابع Super قرارداد را با استفاده از Super Keyword یا با استفاده از نام قرارداد Super فراخوانی کنیم.
- در صورت وراثت چندگانه، فراخوانی تابع با استفاده از Super، بیشتر قراردادهای مشتق شده را ترجیح می دهد.
مثال
pragma solidity ^0.5.0; contract C { //private state variable uint private data; //public state variable uint public info; //constructor constructor() public { info = 10; } //private function function increment(uint a) private pure returns(uint) { return a + 1; } //public function function updateData(uint a) public { data = a; } function getData() public view returns(uint) { return data; } function compute(uint a, uint b) internal pure returns (uint) { return a + b; } } //Derived Contract contract E is C { uint private result; C private c; constructor() public { c = new C(); } function getComputedResult() public { result = compute(3, 5); } function getResult() public view returns(uint) { return result; } function getData() public view returns(uint) { return c.info(); } }