阿123斌 2017-09-28 03:15 采纳率: 100%
浏览 888

这里用Animal 引用指向子类构造参数并赋值,为什么还会是null..............?

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("谢谢使用本程序!");
    }
}

}

  • 写回答

1条回答 默认 最新

  • IAmObject 2017-09-28 05:45
    关注

    我靠 ,,,,哪里是null 啊,这就跟我问你在哪,你说你在地球上一样

    评论

报告相同问题?

悬赏问题

  • ¥20 sub地址DHCP问题
  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办
  • ¥15 kylin启动报错log4j类冲突
  • ¥15 超声波模块测距控制点灯,灯的闪烁很不稳定,经过调试发现测的距离偏大