問題一覧に戻る
中級継承
問題50: Superキーワード
Solidityのsuperキーワードを学習します - オーバーライドされた関数から親コントラクトの関数を呼び出します。Superは直近の親の実装にアクセスでき、完全な置き換えではなく関数の拡張を可能にします。これは新しい動作を追加しながら親のロジックを保持します。多段階継承での機能チェーンの維持に重要です。Superは協調的パターン、ミドルウェアのような動作の実装、親コントラクトの不変条件の維持の保証に不可欠です。superの理解は複雑なDeFiシステムでの堅牢な継承階層の構築を可能にします。
pragma solidity ^0.8.0;
contract Parent {
event Log(string message);
function foo() public virtual {
emit Log("Parent.foo");
}
}
contract Child is Parent {
// 親のfoo関数を呼び出す
function foo() public override {
.foo();
emit Log("Child.foo");
}
}