最終更新:
teromicc3_392 2009年05月15日(金) 10:24:58
Part II - 4 << Part II - 5 >> Part II - 6
抽象クラスは「abstract」をつける。
そしてメソッドは宣言だけを行う。
【例】
【プログラム例】
【メモ】
サブルーチンなどの関数をつくった時に関数をいくつもつくる必要がない。
引数に抽象クラスを設定すればいい。
抽象クラスでは「instansceof」を使う事でどのインスタンスを指しているかを識別できる。
【例】
抽象クラスは「abstract」をつける。
そしてメソッドは宣言だけを行う。
【例】
abstract class Animal //abstractをつける
{
abstract void Show();//抽象メソッド 実装するクラス次第
}
【プログラム例】
//--------- 抽象クラス ----------//
abstract class Animal //abstractをつける
{
protected String name;
abstract void Show();//抽象メソッド 実装するクラス次第
}
//--------- クラス ---------------//
class Dog extends Animal//抽象クラスの継承
{
//コンストラクタ
Dog(String str){
name = str;
}
Dog(){
name = "no name";
}
//メソッド
void Show(){
System.out.println("I'm Dog. My name is " + name);
}
}
//----------- クラス -------------//
class Cat extends Animal//抽象クラスの継承
{
//コンストラクタ
Cat(String str){
name = str;
}
Cat(){
name = "no name";
}
//メソッド
void Show(){
System.out.println("I'm Cat. My name is " + name);
}
}
//------------- メインクラス ---------------//
class CMain
{
public static void main(String str[])
{
//抽象クラスを使ってオブジェクトの作成
Animal animal[] = new Animal[2];
animal[0] = new Dog("Max");
animal[1] = new Cat();
//表示する
animal[0].Show();
animal[1].Show();
System.out.println("---- Program Finish .----");
}
}
【メモ】
サブルーチンなどの関数をつくった時に関数をいくつもつくる必要がない。
引数に抽象クラスを設定すればいい。
抽象クラスでは「instansceof」を使う事でどのインスタンスを指しているかを識別できる。
【例】
//--------- 抽象クラス ----------//
abstract class Animal //abstractをつける
{
protected String name;
abstract void Show();//抽象メソッド 実装するクラス次第。中身は書かない
}
//--------- クラス ---------------//
class Dog extends Animal
{
//コンストラクタ
Dog(String str){
name = str;
}
Dog(){
name = "no name";
}
//メソッド
void Show(){
System.out.println("I'm Dog. My name is " + name);
}
}
//----------- クラス -------------//
class Cat extends Animal
{
//コンストラクタ
Cat(String str){
name = str;
}
Cat(){
name = "no name";
}
//メソッド
void Show(){
System.out.println("I'm Cat. My name is " + name);
}
}
//------------- メインクラス ---------------//
class CMain
{
public static void main(String str[])
{
//抽象クラスを使ってオブジェクトの作成
Animal animal[] = new Animal[2];
animal[0] = new Dog("Max");
animal[1] = new Cat();
//表示する
animal[0].Show();
animal[1].Show();
//インスタンスチェック
for(int loop = 0; loop < animal.length;++loop){
if(animal[loop] instanceof Dog){
System.out.println(loop + " 番目のインスタンスは Dogです");
}else{
System.out.println(loop + " 番目のインスタンスは Dogではありません");
}
}
System.out.println("---- Program Finish .----");
}
}
最新コメント