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
今日推荐
周排行