今日と明日でJAVAを軽く覚えたい
■ このスレッドは過去ログ倉庫に格納されています
008053
2007/08/12(日) 16:24:49とりあえずそれは正しい。
例えば名前を返すメソッドを持つフルーツクラスを考える。
class Fruit { public String getName() { ... } }
こいつを継承して リンゴクラス、バナナクラス、... を作るとしよう。
ポリモーフィズムがわかるなら、
getName() を Fruit クラスに書かなくちゃいけないのは分かるはず。
さて。じゃぁなんで抽象メソッドってものがあるかというと、
Fruit クラスは "リンゴ" とか "バナナ" とか固有の名前を決められないから。
抽象クラスはそれだけでは存在しえない場合に利用する。
しかしあらゆる Fruit に共通の処理をするプログラムは書くことができる。
abstract class Fuit { public String getName(); }
class Foo {
// リンゴにもバナナにも依存しないが、Fruit の名前を表示するメソッド
public void printName( Fruit f ) {
System.out.println( f.getName() );
}
}
また、abstract により Fruit の new を禁止するため、
名前の無い Fruit が作られる心配が無い。
■ このスレッドは過去ログ倉庫に格納されています