सॉलिडिटी - वंशानुक्रम
विरासत एक अनुबंध की कार्यक्षमता का विस्तार करने का एक तरीका है। सॉलिडिटी सिंगल और साथ ही मल्टीपल इनहेरिटेंस दोनों को सपोर्ट करती है। निम्नलिखित प्रमुख हाइलाइस्ट हैं।
एक व्युत्पन्न अनुबंध सभी गैर-निजी सदस्यों तक पहुंच सकता है जिसमें आंतरिक तरीके और राज्य चर शामिल हैं। लेकिन इसका उपयोग करने की अनुमति नहीं है।
फ़ंक्शन ओवरराइडिंग की अनुमति है बशर्ते फ़ंक्शन हस्ताक्षर समान रहे। आउटपुट मापदंडों के अंतर के मामले में, संकलन विफल हो जाएगा।
हम सुपर कीवर्ड का उपयोग करके या सुपर कॉन्ट्रैक्ट नाम का उपयोग करके सुपर कॉन्ट्रैक्ट के फ़ंक्शन को कॉल कर सकते हैं।
कई विरासत के मामले में, सुपर का उपयोग करके फ़ंक्शन कॉल सबसे व्युत्पन्न अनुबंध को वरीयता देता है।
उदाहरण
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(); }
}
सॉलिडिटी फर्स्ट एप्लीकेशन चैप्टर में दिए गए चरणों का उपयोग करके उपरोक्त प्रोग्राम को चलाएं । संविदा के विभिन्न तरीके चलाएं। E.getComputedResult () के लिए E.getResult () शो के बाद -
उत्पादन
0: uint256: 8