package animalleyuan;
import java.util.InputMismatchException;
import java.util.Scanner;
import animallianxi.GeIt;
public class Test {
public static void main(String[] args) {
/**
* 父类依次对子类实例化
* 调用有参构造
*/
Animal ct = new Cat("加菲猫");
Animal yz = new Ya("唐小鸭");
Animal sk = new Shark("小鲨");
System.out.println(ct.getName());
/**
* 接口引用子类进行实例化
* 调用无参构造
*/
leng c = new Cat();
leng y = new Ya();
leng s = new Shark();
Scanner input = new Scanner(System.in);
// 定义变量存储临时数据
try {
do {
System.out.println("动物名字\t\t腿的条数\t\t动物叫");
System.out.println("加菲猫\t\t4\t\t喵喵喵");
System.out.println("唐老鸭\t\t2\t\t嘎嘎嘎");
System.out.println("鲨鱼\t\t0\t\t哟嘿嘿");
System.out.println("是否要继续修改数据:按0进行修改操作,按其它任意数字键退出");
int num = input.nextInt();
if (num == 0) {
System.out.println("请选择要输入的动物名称:\t1.猫类\t2.鸭类\t3.鱼类");
int sum = input.nextInt();
switch (sum) {
/**
* 猫类
*/
case 1:
System.out.println("请输入猫的名称");
String name1 = input.next();
;// 传递实参
System.out.println("请输入腿的条数");
int leng1 = input.nextInt();
if (leng1 == 4) {// 对输入的值判断
System.out.println(ct.getName() + "\t\t" + c.leng() + "\t\t" + ct.print());// 显示结果
} else {
throw new InputMismatchException("猫只能有4条腿");
}
break;
/**
* 鸭类
*/
case 2:
System.out.println("请输入鸭的名称");
String name2 = input.next();
yz.setName(name2);// 传递实参
System.out.println("请输入腿的条数");
int leng2 = input.nextInt();
if (leng2 == 2) {// 对输入的值判断
System.out.println(yz.getName() + "\t\t" + y.leng() + "\t\t" + yz.print());// 显示结果
} else {
throw new InputMismatchException("鸭只能有2条腿");
}
break;
/**
* 鱼类
*/
case 3:
System.out.println("请输入鱼的名称");
String name3 = input.next();
sk.setName(name3);// 传递实参
System.out.println("请输入腿的条数");
int leng3 = input.nextInt();
if (leng3 == 0) {// 对输入的值判断
System.out.println(sk.getName() + "\t\t" + s.leng() + "\t\t" + sk.print());// 显示结果
} else {
throw new InputMismatchException("鲨鱼只能有0条腿");// 手动抛出异常信息
}
break;
}
}
} while (0 != 0);
System.out.println("谢谢回顾");
System.exit(1);// 结束java虚拟机
} catch (InputMismatchException e) {// 捕获异常
System.err.println("输入错误,类型不匹配.");// 抛出异常
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
} finally {
System.out.println("谢谢使用本程序!");
}
}
}