三、物件導向程式語言
Java使用關鍵字extends來表達繼承觀念:
 public class Animal {
public String moveMethod() {
return "Unspecified";
}
}
public class Bird extends Animal {
public String moveMethod() {
return "fly";
}
}
public class Dog extends Animal {
public String moveMethod() {
return "run";
}
}
public class Fish extends Animal {
public String moveMethod() {
return "swim";
}
}

(二)充分利用多型(polymorphism)特性寫一主程式(語意表達清楚),宣告一陣列(array)中有3 Bird,2 Fish,1 Dog,該程式以一簡單迴圈以亂數隨機印出這六隻動物其中之一的動作1000次,如 Fish(4) swim …

解:

import java.lang.Math.*;

class Animal
{
    public String moveMethod()
    {
        return "Unspecified";
    }
}
class Bird extends Animal
{
    public String moveMethod()
    {
        return "fly";
    }
}
class Dog extends Animal
{
    public String moveMethod()
    {
        return "run";
    }
}
class Fish extends Animal
{
    public String moveMethod()
    {
        return "swim";
    }
}
public class ex98
{
    public static void main(String[] args)
    {
        int i;
        i=(int)(Math.random()*6);//產生0~6之間的亂數

        Animal qq[]=new Animal[6];

        qq[0]=new Bird();
        qq[1]=new Bird();
        qq[2]=new Bird();
        qq[3]=new Fish();
        qq[4]=new Fish();
        qq[5]=new Dog();

        switch(i)
        {
            case 0:
                System.out.println("Bird(0)");
            case 1:
                System.out.println("Bird(1)");
                break;
            case 2:
                System.out.println("Bird(2)");
                break;
            case 3:
                System.out.println("Fish(3)");
                break;
            case 4:
                System.out.println("Fish(4)");
                break;
            case 5:
                System.out.println("Dog(5)");
                break;
        }
                
        for(int j=0;j<1000;j++)
        {
            System.out.println(qq[i].moveMethod());
        }
    }
}

 

不知道有沒有更好的答案......

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 Rinoa 的頭像
    Rinoa

    褪色的世界.斑剝的記憶

    Rinoa 發表在 痞客邦 留言(1) 人氣()