三、物件導向程式語言
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());
}
}
}
不知道有沒有更好的答案......