(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)プログラム実行例
