solidity 学习笔记(5)接口
接口:不用实现方法,仅仅定义方法。
pragma solidity ^0.4.23; contract cat{ //cat实际上实现了接口animalEat,因为他们有相同的方法。 string name; function eat() public view returns(string){ return "cat eat"; } } interface animalEat{ function eat() public view returns(string); //定义接口的方法 }
contract interit is animalEat{ //内部实现 直接实现了这个方法
function eat() public view returns(string){
}
} contract animal{ //外部实现 animalEat ae = animalEat(0x692a70d2e424a56d2c6c27aa97d1a86395877b3a); //实例化接口 这里的地址是先部署合约cat的地址 function test()public returns(string){ return ae.eat(); } }
实例化的ae只能调用合约cat中的eat,如果cat合约中有其他方法,但是接口没有同名方法是没办法调用的。