プログラミングBlog

プログラミング学習用

ちょいちょい書いてます

abstract(抽象)

abstracut(抽象)とは

事物または表象からある要素・側面・性質をぬきだして把握すること。(goo辞書)

難しいのでドラクエを使って例えると。。。

例① モンスター→スライム系→スライム
例② モンスター→   鳥系→ドラキー

左にいくほど抽象的な言葉になります。

右にいくほど具体的な言葉になり、何を指しているかがわかりやすくなります。

早速javaを使ってabstract&継承。

使用記述。

 抽象クラス abstract class クラス名{abstract 戻り値の型 メソッド名; }

    抽象クラス& 継承 abstract class 継承クラス名 extends 抽象クラス名{}

 

モンスター
f:id:Tokuty:20190904225344p:plain


スライム系
f:id:Tokuty:20190904225418p:plain


スライム
f:id:Tokuty:20190904225402p:plain


実行
f:id:Tokuty:20190904225307p:plain


実行結果表示

f:id:Tokuty:20190904225225p:plain

 

abstractのルール

①抽象化するとインスタンス生成ができない。

スライムクラスのみインスタンス生成できる。

②抽象化クラスに中身のないメソッドを定義するとサブクラスで中身のあるメソッドに再定義しなければならない。

モンスタークラスにslimeIntrodaction()を定義してるため、スライムクラスのslimeIntrodaction()を消すとエラー。

モンスタークラスで定義しているmonsterIntroduce()は中身があるので問題ない。