面向对象综合练习(动物乐园)

package dongwuleyuan;

public abstract class Animals {
	  String name;//共同属性姓名
	
	public Animals(String name) {
		this.name=name;
	}
	public String getName() {
		return name;
	}
	
	public abstract void cry();//所有动物的叫方法
}
package dongwuleyuan;

public class Cat extends Animals implements Leg {
	private int leg=0;//猫腿的数量
	public Cat(String name ,int leg) {
		super(name);
		this.leg=leg;
	}
	public void cry() {
		//猫叫
		System.out.println("喵喵喵");
	}

	@Override
	public int getLeg() {
		// 猫腿
		return leg;
	}
}
package dongwuleyuan;

public class Dolphin extends Animals {
	
	public Dolphin(String name) {
		super(name);
		// 有参构造获得海豚名
	}

	@Override
	public void cry() {
		// 海豚叫
		System.out.println("海豚音");
	}

}package dongwuleyuan;

public class Duck extends Animals implements Leg {
	private int leg = 0;//鸭子腿的数量
	@Override
	public int getLeg() {
		// 鸭子腿
		return leg;
	}

	public Duck(String name,int leg) {
		super(name);
		this.leg=leg;
	}

	@Override
	public void cry() {
		// 鸭子叫
		System.out.println("嘎嘎嘎");
	}
}
package dongwuleyuan;

public interface Leg {
	int getLeg();//获取腿的数量方法
}package dongwuleyuan;

import java.util.Scanner;

public class Test {
	static Animals ani [] = new Animals[3];
	static Scanner input = new Scanner(System.in);
	static int choose;
	public static void main(String[] args) {
		start();
		while(choose==0) {
			try {
				modify();
			}catch(Exception e) {
				e.printStackTrace();
			}finally {
				load();
				choose=input.nextInt();
			}
		}
		System.out.println("谢谢使用!");
	}
	public static void start () {
		ani[0]=new Cat("加菲猫", 4);
		ani[1]=new Duck("唐小鸭", 2);
		ani[2]=new Dolphin("海豚奇奇");
		load();
		choose=input.nextInt();
	}
	public static void load() {
		System.out.println("动物名字\t\t腿的条数\t\t动物叫");
		for (int i = 0; i < ani.length; i++) {
			if(ani[i] instanceof Leg) {
				String name= ani[i].getName();
				int legNum =((Leg)ani[i]).getLeg();
				System.out.print(name+"\t\t"+legNum+"\t\t");
				ani[i].cry();
			}else {
				String name = ani[i].getName();
				System.out.print(name+"\t\t"+0+"\t\t");
				ani[i].cry();
			}
		}
		System.out.println("是否要继续修改数据:按0进行修改操作,其他任意数字退出!");
	}
    public static void modify() throws Exception {
    	String names[] = new String[3];
    	int num [] = new int [3];
    	System.out.print("请输入猫的名称:");
    	names[0]=input.next();
    	System.out.print("请输入猫腿的条数:");
    	num[0]=input.nextInt();
    	if(num[0]!=4) {
    		throw  new Exception("猫只有4条腿");
    	}
    	System.out.print("请输入鸭子的名称:");
    	names[1]=input.next();
    	System.out.print("请输入鸭腿的条数:");
    	num[1]=input.nextInt();
    	if(num[1]!=2) {
    		throw new Exception("鸭子只有2条腿");
    	}
    	System.out.println("请输入海豚的名称:");
    	names[2]=input.next();
    	ani[0] = new Cat(names[0], num[0]);
		ani[1] = new Duck(names[1], num[1]);
		ani[2] = new Dolphin(names[2]);
    }
}

猜你喜欢

转载自blog.csdn.net/duanhaifeng55/article/details/80249008
今日推荐