面向对向 动物园

package seven_7;

public abstract class Animal {
	private String name;
	public Animal(String name) {
		this.name = name;
	}
	public String getName() {
		return name;
	}
	public abstract void shout();
}

package seven_7;

public interface Terrestrial {
	int getLegNum();
}

package seven_7;

public class Duck extends Animal implements Terrestrial {
	private int legNum;
	public int getLegNum() {
		return legNum;
	}
	public void setLegNum(int legNum) {
		this.legNum = legNum;
	}
	public Duck(String name,int legNum) {
		super(name);
		this.legNum = legNum;
	}
	public void shout() {
		System.out.println("嘎嘎嘎...");
	}
}

package seven_7;

public class Dolphin extends Animal{
	public Dolphin(String name) {
		super(name);
	}
	public void shout() {
		System.out.println("海豚音...");
	}
}

package seven_7;

public class Cat extends Animal implements Terrestrial {
	private int legNum;
	public void setLegNum(int legNum) {
		this.legNum = legNum;
	}
	public int getLegNum() {
		return legNum;
	}
	public Cat(String name,int legNum) {
		super(name);
		this.legNum = legNum;
	}
	public void shout() {
		System.out.println("喵喵喵...");
	}
}

package seven_7;

import java.util.Scanner;

public class AnimalMgr {
	static Animal[] animals = new Animal[3];
	public static void showAnimal() {
		animals[0] = new Cat("加菲猫",4);
	    animals[1] = new Duck("唐小鸭",2);
		animals[2] = new Dolphin("海豚奇奇");	
		for (int i = 0; i < 3; i++) {
			if(animals[i] instanceof Terrestrial) {
				int legNum = ((Terrestrial) animals[i]).getLegNum();
			}
		}
	}
	public static void modifyAnimal() throws Exception{
		String[] names = new String[3];
		int[] number = new int[3];
		Scanner in = new Scanner(System.in);
		System.out.print("请输入猫的名称:");
		names[0] = in.next();
		System.out.print("请输入猫的腿数:");
		number[0] = in.nextInt();
		if(number[0] != 4) {
			throw new Exception("猫只能有4条腿:");
		}
		animals[0] = new Cat(names[0],number[0]);
		System.out.print("请输入鸭子的名称:");
		names[1] = in.next();
		System.out.print("请输入鸭子的腿数:");
		number[1] = in.nextInt();
		if(number[1] != 2) {
			throw new Exception("鸭子只能有2条腿");
		}
		animals[1] = new Duck(names[1],number[1]);
		System.out.print("请输入海豚的名称:");
		names[2] = in.next();
		animals[2] = new Dolphin(names[2]);
	}
	public static void show(){
		System.out.println("动物名字\t\t"+"腿的条数\t\t"+"动物叫");
		Cat cat = (Cat)animals[0];
		System.out.print(animals[0].getName()+"\t\t"+cat.getLegNum()+"\t\t");
		animals[0].shout();
		Duck duck = (Duck)animals[1];
		System.out.print(animals[1].getName()+"\t\t"+duck.getLegNum()+"\t\t");
		animals[1].shout();
		System.out.print(animals[2].getName()+"\t\t"+"0"+"\t\t");
		animals[2].shout();
	}
	public static void main(String[] args) {
		showAnimal();
		show();
		System.out.print("请输入数字(输入0时退出):");
		Scanner input = new Scanner(System.in);
		int choice = input.nextInt();
		while(choice != 0) {
			try {
				modifyAnimal();
				System.out.print("请输入数字(输入0时退出):");
				choice = input.nextInt();
			} catch (Exception e) {
				System.err.print("输入的数字有误,请重新输入(输入0时退出):");
				choice = input.nextInt();
			}
		}
		show();
	}
}

猜你喜欢

转载自blog.csdn.net/lsxdbd/article/details/80262675