Java Programming 2015 – 8

抽象クラスとインターフェース

抽象メソッドと抽象クラス

Javaでは、抽象メソッドを使うことができ、宣言だけでメソッドの実体がないものを定義できます。
C++でいう、純粋仮想関数に該当します。

Javaでは、抽象クラスを宣言することができます。
抽象クラスにするには、 abstractを指定します。

抽象クラスについては、次の注意が必要です。
– 抽象クラスのオブジェクトインスタンスは作成できない。つまり、newできない。
– 抽象メソッドが一つでもあるクラスは、必ず明示的にabstractを指定して抽象クラスにしなければならない。
– 抽象メソッドは、必ずサブクラスで実装しなければならない。

抽象クラスがインスタンス化できないのは、タイヤが決まっていない車を製造できないのに似ています。

インターフェース

Javaでは、究極的に抽象化したクラスをインターフェース(interface)として、宣言でき、次のような特徴があります。

  • 定数以外の変数は使えない。
  • メソッドはすべて、抽象メソッドで実態がない。
  • 定数は、自動的にpublic static finalになる。
  • メソッドは、自動的にpublic abstractになる。

インターフェースを使う

インターフェースを実装するクラスを宣言するには、 implementsキーワードを使います。

継承とともに使う

継承と一緒に使うこともできます。

複数のインタ=フェースを実装する

インターフェースは、定数以外の実体がないので、いわゆるダイヤモンド継承の問題もないので、複数の実装が許されています。

インターフェースの使い方

「操作はインターフェースに対して行う」と言われるように、インターフェースをきちんと定義してそれを実装していくのがオブジェクト指向言語の本質です。

Digiprove sealCopyright secured by Digiprove © 2015

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください