Separating Data from Instruction: Investigating a

オブジェクト指向プログラミング復習
ポリモルフィズムと
インタフェース
October 22, 2001
すべてのオブジェクトのスーパークラス
継承
Object:
toString()
Point: x, y;
toString(), getX(), getY()
Circle: radius
toString(), area()
Cylinder: height
toString(), area(),
volume()
例:Cylinder オブジェクト
データ:x, y, radius, height
メソッド:toString(), area(),
volume()
ポリモルフィズム


同じ名前のメソッドが異なるクラスで
定義されている
どのメソッドが使用されるかは、その
時のオブジェクトによって決まる
アブストラクトスーパークラス
すべてのオブジェクトのスーパークラス
Object:
toString()
アブストラクトスーパークラス
Shape:
area(), volume(), getName()
Point: x, y;
toString(), getX(), getY(),
getName()
Circle: radius
toString(), area(), getName()
Cylinder: height
toString(), area(),
volume(), getName()
アブストラクトスーパークラス


インスタンス(オブジェクト)は生成されない
「インタフェース」を提供する
 メソッド名を決めておく
 デフォルトの実装を提供する
インタフェース(擬似多重継
承)
すべてのオブジェクトのスーパークラス
インタフェース
Object:
toString()
Shape:
area(), volume(), getName()
Point: x, y;
toString(), getX(), getY(),
getName()
Circle: radius
toString(), area(), getName()
Cylinder: height
toString(), area(),
volume(), getName()
インタフェース(擬似多重継承)


インスタンス(オブジェクト)は生成されない
(クラスではない)
「インタフェース」を提供する
 メソッド名を決める
 実装(プログラムコード)は書けない
 インタフェースを利用するクラスは、イン
タフェースで定義されているすべてのメ
ソッドを実装しなければならない
タイプラッパークラス

各プリミッティブ型には、対応するオブ
ジェクトが定義されている。
Object
Character:
char
Integer:
Int
parseInt(int)
Boolean:
boolean
Double:
Double
parseDouble(double)
くわしくは、教科書を参照してね