讲一下 solidity
的继承。
继承的合约可以访问所有非 private
的成员。
external
- 外部访问
public
- 内外均可访问
internal
- 内部以及继承访问
private
is
表示继承,通过复制代码的方式来继承。
1 | pragma solidity ^0.4.18; |
多重继承
is
后面接多个合约,基类合约在 is
后面的顺序很重要。
继承顺序的原则是底层到派生。
1 | contract X{} |
抽象合约
- 合约存在没有函数体的函数
- 合约不能通过编译,只能被继承
1 | contract abstact{ |
如果合约内,存在没有函数体的函数,则认为是抽象合约,不能编译,只能继承。
接口
- 所有函数都没有函数体
- 函数不能继承其他合约,如接口
- 不能定义构造器、变量、结构体、枚举类
1 | interface test{ |