関連記事 ⇒ さくらのマネージドサーバに変更することに

6月 172011
 



■抽象クラスとは

抽象クラスというのは

元々あるクラスとかから共通部分をくくりだして

部品にしようってことですね。


つまり、Aクラス、Bクラスの共通部分をくくりだして、

共通の部品である部分をCクラスにして

抽出することですね。



格好としては、

自ら継承する【神様?】的な、

継承クラスを上位に作り出して

継承してる感じです。



■抽象クラスの代わりに


抽象クラスの代わりにスーパークラスを用意することも可能。

スーパークラスにしたときはインスタンス可能だけど、

抽象クラスにした場合は、そのままじゃインスタンス化できない。

よって抽象クラスの場合はサブクラスをまずつくってから

その後、インスタンス化するという流れになります。

■メリット

共通の部品を作ることで

あたらしい似たようなDクラスという製品を作る場合に

使い回しが効くと言うことですね。

JAVAの基本的な考え方に

・使い回し(ずぼらな感じ??)

・カプセル化(使わせたくない、見せたくない、セキュリティ強化みたいな感じ)

ってのが基本的なプログラミング言語の仕様かなと思いますし、

それを目標に開発されてきている言語だと自分は思ってます。





[note]

abstract class Saisei {
void kinouA(){ //普通のメソッドも書ける
system.out.println(“kinouAのメソッド実行”);

}

abstract void kinouB();

/*↑抽象メソッドkinouB();は、メソッド欄は中身を空にしておく。メソッドの中身は下位のサブクラス側でオーバーライドして使う感じです。あるいはすでに定義してある場合はメソッド名だけを抜き出して上位の抽象クラス側に書いとけばいいです*/


}


class Dvd extends Saisei {  //抽象クラスを継承
void kinou B(){
system.out.println(“DvdのkinouBのメソッド実行”);

/*上位の抽象クラスのkinouBのメソッドの中身をここで初めてオーバーライドしてあげます。*/

}



class PlayStation extends Saisei {  //抽象クラスを継承
void kinou B(){
system.out.println(“playstationのkinouBのメソッド実行”);

/*上位の抽象クラスのkinouBのメソッドの中身をここでもオーバーライドしてあげます。*/

}

[/note]


Sorry, the comment form is closed at this time.

関連記事はこちら

関連記事はこちら

■関連記事 ⇒ さくらのマネージドサーバに変更することに






じゃらん Web サービス Supported by 楽天ウェブサービス