044-インタフェース-インタフェースの定義と実装 【新人エンジニアが最初に覚えたい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");
}
}解説
インタフェースの定義と実装について解説します。
以前の動画では、継承について確認しました。Javaは単一継承です。
Javaでは、自分のクラスに対して、一つのクラスしかスーパークラスを持つことができません。
この継承しか知らないとクラスが増えたときに困ったことが発生します。
たとえば、クラスXとクラスYがあり、スーパークラスAがあったとします。
単一継承ですから、このままであれば、問題ありません。
ここにクラスZを作成します。
クラスYとクラスZを1つのグループで扱いたい場合どうすればよいでしょうか。
すでにクラスYはスーパークラスAを持っていますから、スーパークラスAの上にさらにスーパークラスBを作り、Zを継承させればよいのですが、面倒なことにクラスXも仲間に入ってしまいます。
現実世界でもありますよね。飲み会に誘うときに、Yさんだけを誘いたいんだけど、どうしてもXさんもついてくる・・・といった具合です。
そこで登場するのが、インタフェースです。
インタフェースは、継承と併用OKの文法で、
かつクラスを複数のインタフェースに所属させることができます。
先ほどの例の場合は、クラスYとクラスZにインタフェースBを実装させれば、
クラスYとクラスZを同じグループで扱うことができます。
イメージは理解できたでしょうか?
サンプルコードで確認しましょう。
インタフェースの定義側は、interfaceインタフェース名と記述します。
インタフェースで定義できることは2つだけです。定数の宣言と抽象メソッドの定義です。
抽象メソッドを忘れてしまったという方はぜひ以前の動画を参考にしてください。
インタフェースの中では、abstractを付けなくても、抽象メソッドになります。
インタフェースを実装するときには、implementsというキーワードを使います。
Implementsインタフェース名とするだけで実装できます。
複数のインタフェースを実装するときにはカンマで区切ります。
抽象メソッドが含まれている場合は、オーバーライドする必要があります。
オーバーライドするとどうなるか、については、次の動画で解説します。
ここでは、インタフェースでできることは定数の宣言と抽象メソッドの定義、インタフェースを実装する際には、implementsを使うというポイントだけ押さえておきましょう。
以上、インタフェースの定義と実装について解説しました。
このサンプルコードをJavaタッチタイプゲームとして遊ぶことができます。
投稿者プロフィール
- 代表取締役
-
セイ・コンサルティング・グループ株式会社代表取締役。
岐阜県出身。
2000年創業、2004年会社設立。
IT企業向け人材育成研修歴業界歴20年以上。
すべての無駄を省いた費用対効果の高い「筋肉質」な研修を提供します!
この記事に間違い等ありましたらぜひお知らせください。
学生時代は趣味と実益を兼ねてリゾートバイトにいそしむ。長野県白馬村に始まり、志賀高原でのスキーインストラクター、沖縄石垣島、北海道トマム。高じてオーストラリアのゴールドコーストでツアーガイドなど。現在は野菜作りにはまっている。
最新の投稿
山崎講師2025年12月30日【Python】連立方程式を一瞬で解く!掃き出し法の仕組みと実装をわかりやすく解説
山崎講師2025年12月30日【新人エンジニア向け】「解なし」の正体を見破る。行列式と「面積」の意外な関係
山崎講師2025年12月30日【新人エンジニア向け】連立方程式をプログラムのように解く!「逆行列」と「掃き出し法」
山崎講師2025年12月30日【新人エンジニア向け】暗記は不要!「行列の掛け算」のルールを5分でマスターする