Home Blockchain Solidity Contract的virtual_override_super_is
Post
Cancel

Blockchain Solidity Contract的virtual_override_super_is

i

refer to:
https://shishirsingh66g.medium.com/solidity-part-3-inheritance-virtual-override-and-super-d96344a9aa52

is: 用来表示继承关系

super: 在 child 中调用parent

virtual: 表示某个方法可以在child中被override

override: 表示某个 parent 的方法在child 中可以被重新定义

跟java太像了。

一个例子:

contract Parent {
  function sayHi() public pure virtual returns (string memory) {
    return "hihihi from parent";
  }
}
contract Child is Parent {
  function sayHi() public pure override returns(string memory) {
    return super.sayHi();
  }
}

可以看到,

virtual 和 override 必须同时使用。 位于 returns 左边挨着。如果不用的话,会被提示无法编译:

还可以多重继承,例如:

 contract Child is Parent1, Parent2 ...

This post is licensed under CC BY 4.0 by the author.