为了账号安全,请及时绑定邮箱和手机立即绑定

我想知道在这段代码中为什么子类Cat实例不能注入父类Animal[]数组中?

我想知道在这段代码中为什么子类Cat实例不能注入父类Animal[]数组中?

Ann_Zhang 2017-06-18 12:54:05
Animal父类package com.imooc.Test; public class Animal {     //属性:kind(种类)     private String kind;          public Animal(){     }          //创建带参(king为参数)构造函数     public Animal(String kind){         this.setkind(kind);     }     //应用封装实现对私有属性的get/set操作     public void setkind(String kind){         this.kind = kind;     }     public String getkind(){         return this.kind;     }          //创建成员方法cry():void     public void cry(){     } }Cat子类package com.imooc.Test; public class Cat extends Animal {     //重写父类cry()方法,输出信息为“小猫的叫声:喵喵喵~~~”     public void cry(){         System.out.println("小猫的叫声:喵喵喵~~~");     } }Dog子类package com.imooc.Test; public class Dog extends Animal {     //重写父类cry()方法:输出信息为“小狗的叫声:汪汪汪~~~”     public void cry(){         System.out.println("小狗的叫声:汪汪汪~~~");     } }Sheep子类package com.imooc.Test; public class Sheep extends Animal {     //重写父类的方法cry(),要求输出信息“小羊的叫声:咩咩咩~~~”    public void cry(){        System.out.println("小羊的叫声:咩咩咩~~~");     } }测试代码public class Test {     public static void main(String[] args) {         //生成父类对象数组,数组长度为5         Animal[] animal = null;         //产生随机数,随机产生三种具体子类的实例         for(int i_1 = 0;i_1<6;i_1++){             int x=(int)(Math.random()*3);                        animal[i_1] = new Cat();             if(x == 0){                  animal[i_1] = new Cat();             }             else if(x == 1){                 animal[i_1] = new Dog();                              }             else if(x == 2){                 animal[i_1] = new Sheep();             }         }        //循环输出,循环体中每个对象分别调用cry()方法。         for(int i_2 = 0 ; i_2<6 ; i_2++){             animal[i_2].cry();         }     } }请多指教。
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 1437 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信