(2)用继承完成下列任务。 1)写一个类,名为Animal,该类有两个私有属性,name(代表动物的名字),和legs(代表动物的腿的条数);要求为两个私有属性提供public的访问方法。并提供两个重

(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));
	}

}

你可能感兴趣的:(java,java,继承)