// Solidity program to // demonstrate the working // of the interface pragma solidity 0.4.18; // A simple interface interface InterfaceExample { // Functions having only // declaration not definition function getStr() public view returns(string memory); function setValue(uint _num1, uint _num2) public; function add() public view returns(uint); } // Contract that implements interface contract thisContract is InterfaceExample { // Private variables uint private num1; uint private num2; // Function definitions of functions // declared inside an interface function getStr() public view returns(string memory) { return "GeeksForGeeks"; } // Function to set the values // of the private variables function setValue(uint _num1, uint _num2) public { num1 = _num1; num2 = _num2; } // Function to add 2 numbers function add() public view returns(uint) { return num1 + num2; } } contract call { //Creating an object InterfaceExample obj; function call() public { obj = new thisContract(); } // Function to print string // value and the sum value function getValue() public returns(uint) { obj.getStr; obj.setValue(10, 16); return obj.add(); } }
0.4.18