問題一覧に戻る
中級継承
問題55: 修飾子の継承

Solidityの修飾子継承を学習します - 修飾子が継承され、子コントラクトでオーバーライドできる方法です。'virtual'でマークされた修飾子は派生コントラクトでオーバーライドでき、カスタマイズ可能なアクセス制御と検証ロジックを可能にします。継承された修飾子は継承された関数のように動作し、所有権チェックのような共通パターンのコード再利用を促進します。このパターンは柔軟な権限システムと再利用可能なコントラクトコンポーネントの構築に不可欠です。修飾子継承の理解はDeFiプロトコルとガバナンスシステムでの洗練されたアクセス制御階層の作成を可能にします。

pragma solidity ^0.8.0;

contract Ownable {
address public owner = msg.sender;

// 親の修飾子
modifier onlyOwner() {
require(msg.sender == owner, "Not owner");
;
}
}

contract Wallet is Ownable {
// 継承した修飾子を使用
function withdraw() public {
// Owner-only function
}
}