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