この記事の概要
実行結果と実コードを説明します。
実コードの実コードのコメントと画面出力内容を見れば、分かるような記載としています。
■クラス概要
クラス名 | 説明 |
Main | 以下の3つを実行 ・Aクラスで実装したメソッドを実行 ・Bクラスで実装したメソッドを実行 ・Interface1のstaticメソッドを実行 |
Interface1 | ・抽象メソッド ・staticメソッド |
A | ・ Interface1 の抽象メソッドを実装 |
B | ・ Interface1 の抽象メソッドを実装 |
■確認ポイント
・インターフェースで定義した抽象メソッドを各実装クラスで再定義
※ポリモフィズムの強制というのがインターフェースの特性
・インターフェースで定義したstaticメソッド
実行結果と実装と考察
すべての実行結果について、なぜそのような結果になるのか説明します。
■実行結果
========
10 :クラスAでOverrideした結果
30 :クラスBでOverrideした結果
========
【説明】
Aクラス、Bクラスでcalc()というメソッドを再定義し実行した結果です。
再定義しているので、結果は別々となります。
インターフェースを利用してポリモフィズムを実現しています。
■実行結果
========
200 :インターフェースのstaticメソッドを実行
========
【説明】
インターフェースでstaticメソッドも定義し、実行した例です。
・staticメソッドなので、再定義不要
・明示的なインスタンス化(new)も不要