继承通过关键字 is 来实现,例如:
pragma solidity ^0.8.0;
contract Person{
string name;
uint age;
}
contract Man is Person{
}
访问权限
1 子类不能访问父类的private的,其他的都可以访问,比如Public internal
2 继承不允许函数或变量重名
重写函数
从 0.6 开始,solidity 引入了 abstract, virtual, override 几个关键字,用于重写函数。
pragma solidity ^0.8.0;
contract Employee {
function getSalary() public pure virtual returns(int){
return 1;
}
}
contract Manager is Employee {
function getSalary() public pure override returns(int){
return 2;
}
}
基类中可以包含没有实现代码的函数,也就是纯虚函数,那么基类必须声明为 abstract。
示例以下:
pragma solidity ^0.8.0;
abstract contract Employee {
function getSalary() public pure virtual returns(int);
}
contract Manager is Employee {
function getSalary() public pure override returns(int){
return 2;
}
}
本文介绍了Solidity编程语言中如何使用`is`关键字进行合约继承,以及访问权限、函数重写和抽象合约的概念。通过示例展示了如何定义和重写`getSalary`函数,强调了在继承中子类对父类成员的访问规则,并探讨了Solidity 0.6以后版本的`abstract`、`virtual`和`override`关键字在函数定义中的作用。
1609

被折叠的 条评论
为什么被折叠?



