(2)用继承完成下列任务。
1)写一个类,名为Animal,该类有两个私有属性,name(代表动物的名字),和legs(代表动物的腿的条数);要求为两个私有属性提供public的访问方法。并提供两个重载的构造方法,一个需要两个参数,分别用这两个参数给私有属性name和legs赋值。另一个无参,默认给name赋值为AAA,给legs赋值为4;该类有一个带参的void move(int n)方法,在屏幕上输出n次“XXX Moving!!”;添加属性的get和set方法。
2)写一个类Fish,继承自Animal类,并提供一个构造方法,该构造方法需要一个参数name,并给legs赋默认值0;该类要求覆盖Animal类中的void move(int n)方法,输出n次“XXX Swimming!!”。
3)写一个类Bird,继承自Animal类,并提供一个构造方法,该构造方法需要一个参数name,并给legs赋默认值2;该类要求覆盖Animal类中的void move(int n)方法,输出n次“XXX Flying!!”。
4)写一个测试类Zoo,定义一个入口方法main(),在入口方法中分别生成若干个Animal,Fish和Bird的实例对象,并调用他们的属性和方法,其中void move(int n)中参数n要求用Math.random()方法产生[1,4]之间的数。
package thirdjava;
class animal1 {// 写一个类,名为Animal
private String name;
private int leg;
// 该类有两个私有属性,name(代表动物的名字),
// 和legs(代表动物的腿的条数)
public String getName() {// 添加属性的get和set方法//即是:为两个私有属性提供public的访问方法
return name; //比如 name999=getName(); 就访问了
}
public void setName(String name) {// 添加属性的get和set方法
this.name = name;
}
public int getLeg() {// 添加属性的get和set方法
return leg;
}
public void setLeg(int leg) {// 添加属性的get和set方法
this.leg = leg;
}
public animal1(String name, int leg) {// 重载的构造方法,一个需要两个参数,分别用这两个参数给私有属性name和legs赋值
this.name = name;
this.leg = leg;
}
public void animal() {// 无参,默认给name赋值为AAA,给legs赋值为4
this.name = "AAA";
this.leg = 4;
}
public void move(int n) {// 在屏幕上输出n次“XXX Moving!!”
for (int i = 0; i < n; i++)
System.out.println(name + " Moving!!");
}
}
class fish extends animal1 {// 子类fish
public fish(String name) {// 该构造方法需要一个参数name,并给legs赋默认值0
super(name, 0);
}
public void move(int n) {// 覆盖Animal类中的void move(int n)方法
for (int i = 0; i < n; i++)
System.out.println("XXX Swimming!!");
}
}
class bird extends animal1 {// 子类bird
public bird(String name) {// 该构造方法需要一个参数name,并给legs赋默认值2
super(name, 2);
}
public void move(int n) { 覆盖Animal类中的void move(int n)方法
for (int i = 0; i < n; i++)
System.out.println("XXX Flying!!");
}
}
public class TextZoo {// 测试类
public static void main(String[] args) {
// TODO Auto-generated method stub
animal1 ha = new animal1("XXX", 0);//生成若干个Animal,Fish和Bird的实例对象
animal1 bird = new bird("鸟");//如果没有public bird(String name),就不用加”鱼“
animal1 fish = new fish("鱼");
ha.move((int)(Math.random()*4+1));//参数n要求用Math.random()方法产生[1,4]之间的数
bird.move((int)(Math.random()*4+1));
fish.move((int)(Math.random()*4+1));
}
}