概要

同じコードのコピペにサヨナラ!オブジェクト指向の核心「継承」を解説します。Ownableのような共通機能を親コントラクトとして分離し、isキーワードでその全機能を子コントラクトに引き継ぐ方法を学習。
virtualとoverrideによる機能拡張も学び、安全で整理されたDApp開発を実現する、プロ必須の設計思想が身につきます。
-
-
Solidity学習講座:最終版 目次(全20話)
基礎編 第1話:未来のインターネットへようこそ!Solidityとスマートコントラクトの全体像 第2話:準備は1分!ブラウザだけで開発できる「Remix IDE」の基本操作 第3話:記念すべき初コント ...
続きを見る
はじめに
第11話では、msg.sender
とmsg.value
を駆使し、コントラクトに所有権の概念を導入し、さらにはETHを受け取る機能まで実装しました。特に、constructor
とonlyOwner
修飾子を使った所有者管理のパターンは、多くのDAppで必要となる、非常に汎用性の高い機能です。
ここで、賢いエンジニアであるあなたは、当然こう考えるはずです。 「この便利な所有者管理のロジック、次に新しいコントラクトを作るときも絶対使うよな…。そのたびに、また同じコードをコピー&ペーストするのか? もし元のコードにバグが見つかったら、コピペした全てのコントラクトを修正して回るのか?」
その通り。コピー&ペーストによる開発は、非効率的で、バグの温床となり、メンテナンス性を著しく低下させます。この課題を解決するのが、今回学ぶ**「継承(Inheritance)」**という、オブジェクト指向プログラミング(OOP)の三大原則の一つです。
継承は、既存のコントラクトを「親」として、その機能や性質をまるごと「子」のコントラクトに引き継がせる仕組みです。これにより、あなたのコードは**DRY(Don't Repeat Yourself - 同じことを繰り返すな)**の原則に従い、再利用可能で、整理され、そして拡張しやすい、美しい構造を手に入れることができるのです。