DEV Community

Yao Marius SODOKIN
Yao Marius SODOKIN

Posted on

Calling Parent Contracts

Calling parent contracts in Solidity can be a powerful tool for developers, allowing them to build upon existing functionality while also adding new functionality to their contracts. The most common method for calling parent contracts is through the use of the "super" keyword.
This keyword allows a child contract to call a function from its parent contract, even if the function has been overridden in the child contract.

For instance, let's consider a parent contract "Animals" that has a function "isAlive()" which returns a boolean value indicating whether the animal is alive or not. A child contract "Dogs" could inherit from the "Animals" contract and override the "isAlive()" function to include additional functionality, such as checking if the dog is trained:

pragma solidity ^0.6.0;
contract Animal {
    function isAlive() public view returns (bool) {
        return true;
    }
}

contract Dog is Animal {
    bool public isTrained;

    function isAlive() public view returns (bool) {
        if (super.isAlive() && isTrained) {
            return true;
        }
        return false;
    }
}
Enter fullscreen mode Exit fullscreen mode

In this example, the "Dog" contract uses the "super" keyword to call the "isAlive()" function from its parent contract, "Animals". The child contract can then add additional functionality to the function, such as checking if the dog is trained, before returning the final value.
However, it is important to be cautious when calling parent contracts, as this can also pose security risks. Developers must ensure that calls to parent contracts are made only by authorized parties and that sensitive information is properly protected. They should also be aware of the potential for reentrancy attacks and take appropriate measures to prevent them.

In conclusion, calling parent contracts in Solidity can provide a useful way to extend functionality while also maintaining code maintainability. By using t

The "super" keyword, developers can easily call a parent contract's function, even if the function has been overridden in the child contract. However, it is important to consider security and take appropriate measures to protect sensitive information and prevent reentrancy attacks.

Top comments (0)