接口,继承,抽象类
pragma solidity ^0.4.24;
interface Wifi{ // 定义接口,函数只有声明,没有实现
function wifi() public returns(string);
}
interface BlueTooth{
function blue() public returns(string);
}
// solidity中,没有abstract,拥有抽象函数的合约就是抽象合约(不能够实例化)
contract Phone{
// 抽象合约是不能够实力化
function start() internal returns (string){
return "调用开机的功能";
}
// 实现手机关机的功能
function close() internal returns (string){
return "调用了关机的功能";
}
// 由于闹钟每个手机实现不相同,因此定义为抽象函数
function alarm() internal returns (string);
}
// Mi手机,实现闹钟、Wifi功能
contract Mi is Phone,Wifi{ // 继承与实现都可以使用is
function wifi() public returns(string){
return "小米实现wifi功能";
}
function alarm() internal returns (string){
return "小米实现闹钟功能";
}
function show() returns (string,string){
return (wifi(),alarm());
}
}
// Iphone手机,实现全部功能
contract Iphone is Phone,Wifi,BlueTooth{
function wifi() public returns(string){
return "Iphone实现wifi功能";
}
function alarm() internal returns (string){
return "Iphone实现闹钟功能";
}
function blue() public returns(string){
return "Iphone实现了蓝牙功能";
}
function show() returns (string,string){
return (start(),close());
}
}