046-インタフェース-インタフェースの配列 【新人エンジニアが最初に覚えたい100のJava文法】
ユーチューブ動画
インタフェースの配列について解説します。
ソースコード
interface Special {
int SPECIAL_POINT_BASE = 10;
void showSpecial();
}
class Note implements Special {
public void showSpecial() {
System.out.println((SPECIAL_POINT_BASE * 2) + "point");
}
}
class Ball implements Special {
public void showSpecial() {
System.out.println(SPECIAL_POINT_BASE + "point");
}
}
public class MainClass {
public static void main(String[] args) {
Special[] specialList = { new Note(), new Ball() };
for(Special product : specialList){
product.showSpecial();
}
}
}解説
インタフェースの配列について解説します。
スーパークラスの変数に、サブクラスのインスタンスが代入できる、
インタフェースの変数に、実装したクラスのインスタンスが代入できる
と、この2点を確実に覚えておければ、ここからの話も楽になると思います。
また、インスタンスをグループ化するようなものだというイメージも大切です。
サンプルコードで確認します。
ここではmainメソッドを中心に確認していきましょう。
インタフェースの変数に、実装したクラスのインスタンスが代入できますから、
Specialインタフェースの型の配列には、実装したクラスのインスタンスが格納できるということになります。
これらはハテナと感じるよりも、そういう性質ということで、覚えてしまいましょう。
配列ができたら、あとはこっちのものです。拡張for文などを使って、
オーバーライドされたメソッドを呼び出すと、ポリモーフィズムが実現されます。
呼び出したインスタンスの種類に応じた振る舞いを実行できます。
ここでは、Noteクラスのインスタンスが20point,、Ballクラス側のインスタンスが10pointと表示されます。
このようにインスタンスを配列にし、グループ化して、まとめて処理させるときには、
継承を使うか、インタフェースを使うか悩むかもしれません。
インタフェースの方が、複数実装できるので、好んで使うという方もいらっしゃいます。
いずれにしても、オーバーライドとポリモーフィズムをセットで覚えて、それを実現する方法には、
継承やインタフェースがあると整理できれば、このあたりの知識としては大丈夫です。
以上、インタフェースの配列について解説しました。
このサンプルコードをJavaタッチタイプゲームとして遊ぶことができます。
投稿者プロフィール
- 代表取締役
-
セイ・コンサルティング・グループ株式会社代表取締役。
岐阜県出身。
2000年創業、2004年会社設立。
IT企業向け人材育成研修歴業界歴20年以上。
すべての無駄を省いた費用対効果の高い「筋肉質」な研修を提供します!
この記事に間違い等ありましたらぜひお知らせください。
学生時代は趣味と実益を兼ねてリゾートバイトにいそしむ。長野県白馬村に始まり、志賀高原でのスキーインストラクター、沖縄石垣島、北海道トマム。高じてオーストラリアのゴールドコーストでツアーガイドなど。現在は野菜作りにはまっている。
最新の投稿
山崎講師2026年1月13日データ分析の第一歩!コイン投げから学ぶベルヌーイ分布と二項分布の仕組み
山崎講師2026年1月12日生成モデル、識別モデル、識別関数の違い
山崎講師2026年1月12日AIが賢くなる秘密の数式?ベイズの定理で「データから正解」を導き出す方法
山崎講師2026年1月11日【NumPy応用】乱数を操る!choiceとshuffleを使いこなして脱・初心者を目指そう