抽象クラス
具象クラスに継承されることが前提。
public abstract class Fruit {
public abstract String whatColor();
}
抽象クラスFruitは抽象メソッドwhatColor()をもつ。修飾子abstractをつける。
抽象メソッドは具体的な色を返すことができないため、{}はかかない。
抽象メソッドは抽象クラスにしか定義できない。具象クラスでオーバーライドが必要。
eclipseのクラス作成の画面で「abstract」や「スーパークラス」を選ぶ、
もしくは、コンパイルエラーのときに修正例を選択することで自動入力できる。
インターフェース
インターフェースとは、モノを定義するというよりは、モノの使い方のルールだけを決めるもの。
ルールがたくさん集まれば、規格となる。
クラスではなく、新規インターフェースを作成する。
インターフェースの実装
クラス名の後ろに「implements インターフェース名」を記述する。
eclipseのクラス作成画面からインターフェースを追加すると自動的に記述される。
インターフェースには「is a 関係」は必要ではなく、
能力を表すため、複数のインターフェースを実装できる。(インターフェースの多重実装)
インターフェース型の参照変数を配列で使うと、メソッドをfor文でまわしてポリモーフィズムを実装できる。
Audio[] audioAry = { new Stereo, new MP3Player };
for ( int i = 0; i< audioAry.length; i++){
audioAry[i].play();
audioAry[i].stop();
}
パッケージ
クラス管理
package宣言はソースファイルの先頭に1度だけ使用できる。
Stringクラス
内部的には配列で管理している。「JDK」で検索してAPIドキュメントを調べるとよい。
コメント