【发布时间】:2015-06-17 07:08:52
【问题描述】:
你好,我是一名新的编程学生。 如何计算 x&y 坐标??
问: 示例:假设我们创建一个程序模拟 几种动物的运动 生物学研究。鱼、蛙和鸟类 代表以下三种动物 调查。
每个类都扩展了超类 Animal,它包含一个 方法移动并保持动物的当前位置为 x-y 坐标。每个子类都实现方法move。
一个程序维护一个 Animal 数组,其中包含 对各种 Animal 子类的对象的引用。到 模拟动物的动作,程序发送每个 每秒对同一消息进行一次反对,即移动。
每种特定类型的动物都会对移动做出反应 以独特的方式传达信息:
一条鱼可能会游三英尺
一只青蛙可能会跳五英尺
一只鸟可能会飞十英尺。
程序向每个人发出相同的消息(即,移动) 动物对象,但每个对象都知道如何修改它的 x-y 适合其特定的运动类型的坐标。
依靠每个对象知道如何“做正确的事” 响应相同的方法调用是关键概念 多态性。
发送到各种对象的同一消息具有“许多 结果的形式”——因此称为多态性。
package animals;
public class Animals {
public static void main(String[] args) {
Fish F = new Fish ("fish");
Frog Fr = new Frog ("frog");
Bird B = new Bird ("bird");
Animal[] A = new Animal [3];
A[0]= F;
A[1]=Fr;
A[2]=B;
for (int i=0 ; i <3; i++){
A[i].toString();
}
}
}
package animals;
public abstract class Animal {
private String type;
public Animal (String type){
this.type = type ;
}
public abstract int move ();
public String toString (){
return String.format(type);
}
}
package animals;
public class Fish extends Animal {
public Fish (String name){
super(name);
}
@Override
public int move () {
//here what I write ?
}
@Override
public String toString (){
return String.format("Fish swim "+move()+" feet");
}}
所有的动物我都这样^^
【问题讨论】:
-
你说“......动物......它......将动物的当前位置保持为 xy 坐标。”,但我没有看到任何
x或y参考Animal类;还有“鱼可能游三英尺”……这只是一个运动限制;谁决定鱼的实际移动位置?一些人工智能? -
应该创建 x 和 y 参考? :( 我该怎么做 move 方法?!
标签: java polymorphism abstract extends