(1) Javaのabstractとは?抽象クラスの概要やサンプルPGをご紹介
(1-1) 抽象クラス(abstract)とは
(1-2) 抽象クラスの目的や用途
(1-3) 抽象クラスの構文
(1-4) 抽象クラスとインターフェイスとの違いは?
(1-5) 抽象クラスのサンプルプログラム
(1-6) 備考:abstractメソッドの制約
(1) Javaのabstractとは?抽象クラスの概要やサンプルPGをご紹介
(1-1) 抽象クラス(abstract)とは
(1-2) 抽象クラスの目的や用途
(1-3) 抽象クラスの構文
public abstract class [クラス名] { //中略 public abstract [戻り値の型] [メソッド名](引数を列挙); //中略 }
(1-4) 抽象クラスとインターフェイスとの違いは?
(1-5) 抽象クラスのサンプルプログラム
抽象クラスを用いたサンプルプログラムです。抽象クラス「Fruits」を3つのサブクラス「Strawberry」(苺)、「Grape」(ぶどう)、「Banana」(バナナ)クラスがそれぞれ実装しております。
mainメソッドの中では、フルーツの原産地を引数にインスタンスを作り、それぞれのサブクラスの「color()」メソッドでメッセージを出力しています。
public class AbstractTest { public static void main(String args[]) { Fruits obj[] = {new Strawberry("栃木"), new Grape("山梨"), new Banana("インドネシア")}; for(Fruits o: obj) { o.color(); } } } abstract class Fruits { public abstract void color(); } class Strawberry extends Fruits { private String origin; public Strawberry(String origin) { this.origin = origin; } public void color() { System.out.println("「"+origin+"」産のイチゴは赤くて美味しいです"); } } class Grape extends Fruits { private String origin; public Grape(String origin) { this.origin = origin; } public void color() { System.out.println("「"+origin+"」産のブドウは紫色で美味しいです"); } } class Banana extends Fruits { private String origin; public Banana(String origin) { this.origin = origin; } public void color() { System.out.println("「"+origin+"」産のバナナは黄色で美味しいです"); } }
(図151)プログラム実行例