virtual 关键词 来定义这个函数是可以被重写的
override 关键词 用来覆盖之前父合约的函数
B合约继承了A合约,如果C合约继承了B合约,那么同样也继承了A合约的方法;
pragma solidity ^0.8.7;
contract A {
function foo() public pure virtual returns (string memory) {
return "A";
}
function bar() public pure virtual returns (string memory) {
return "A";
}
// more code here
function baz() public pure returns (string memory) {
return "A";
}
}
contract B is A {
function foo() public pure override returns (string memory) {
return "B";
}
function bar() public pure virtual override returns (string memory) {
return "B";
}
// more code
}
contract C is B {
function bar() public pure override returns (string memory) {
return "C";
}
// more code
}