Ethereum Advent Calendar 2018の11日目の記事です。
今回は、TrueUSDなど、Solidityの多重継承を活用して上手にモジュール化したプロジェクトを見ていて、Solidityでの多重継承の挙動がどのように行われるか不安になったので調べてみました。
本記事では、子コントラクトで親コントラクトのメソッドを実装しない場合どうなるのか、子コントラクトで親コントラクトのメソッドを実装しsuper.methodNameのようにして親コントラクトのメソッドを呼び出した場合どうなるのか、多重継承している場合はどうなるのか、ダイヤモンド継承をしている場合はどうなるかを解説します。
また、今回はSolidityの単純な継承の説明は省略しています。
今回は、TrueUSDなど、Solidityの多重継承を活用して上手にモジュール化したプロジェクトを見ていて、Solidityでの多重継承の挙動がどのように行われるか不安になったので調べてみました。
本記事では、子コントラクトで親コントラクトのメソッドを実装しない場合どうなるのか、子コントラクトで親コントラクトのメソッドを実装しsuper.methodNameのようにして親コントラクトのメソッドを呼び出した場合どうなるのか、多重継承している場合はどうなるのか、ダイヤモンド継承をしている場合はどうなるかを解説します。
また、今回はSolidityの単純な継承の説明は省略しています。
実行環境は以下です。
- Solidity 0.5.1+commit.c8a2cb62.Emscripten.clang
- Remix
- Rinkebyテストネットワーク