Virtual & Overwrite
In Solidity, the virtual and override keywords are used when working with inheritance and function overriding.
virtualkeyword is used to declare a function that can be overridden in the child contract. When a function is declared asvirtual, it means that it can be overridden by a function with the same signature in a child contract.overridekeyword is used to indicate that a function is intended to override a virtual function in the parent contract. When a function is declared with theoverridekeyword, it must have the exact same function signature as the function it is intended to override.
Example
contract Parent {
function foo() public virtual returns (uint) {
return 10;
}
}
contract Child is Parent {
function foo() public override returns (uint) {
return 20;
}
}In this example, the Parent contract declares a virtual function foo(). The Child contract inherits from the Parent contract and overrides the foo() function with its own implementation using the override keyword.
Last updated