应用继承和多态的思想,编写动物类,成员方法是动物叫声。写三个具体的类(猫、狗、羊),它们都是动物类的子类,并重写父类的成员方法。编写测试类,随机产生三种具体动物,调用叫声这个方法。 程序参考运行效果如图所示:  **任务分析:** **1. 定义一个父类Animal类** 属性:kind(种类) 方法:创建带参(kind为参数)构造方法 创建cry():void方法 **2. 编写三个具体的子类Cat类、Dog类、Sheep类** 分别重写父类中的 cry() 方法,输出信息分别为 Cat类:小猫的叫声:喵喵喵~~~ Dog类:小狗的叫声:汪汪汪~~~ Sheep类:小羊的叫声:咩咩咩~~~ **3. 编写测试类,首先生成长度为5的父类对象数组,然后通过循环依次向数组中存入数据,现设定存储规则为:** a) 每次随机产生一个0~2的正整数 b) 若数值为 0,则生成一个 Cat 类的对象,存入数组 c) 若数值为 1,则生成一个 Dog 类的对象,存入数组 d) 若数值为 2,则生成一个 Sheep 类的对象,存入数组 最后循环输出数组成员,并分别调用 cry() 方法。 ```java package me.feihong.catdog; public class Cat extends Animal{ public Cat() { } public Cat(String kind) { super(kind); } //重写父类cry()方法,输出信息为“小猫的叫声:喵喵喵~~~” @Override public void cry() { System.out.println(getKind()+"小猫的叫声:喵喵喵~~~"); } } ``` ```java package me.feihong.catdog; public class Dog extends Animal{ public Dog() { } public Dog(String kind) { super(kind); } //重写父类cry()方法:输出信息为“小狗的叫声:汪汪汪~~~” @Override public void cry() { System.out.println(getKind()+"小狗的叫声:汪汪汪~~~"); } } ``` ```java package me.feihong.catdog; public class sheep extends Animal{ public sheep() { } public sheep(String kind) { super(kind); } //重写父类的方法cry(),要求输出信息“小羊的叫声:咩咩咩~~~” @Override public void cry() { System.out.println(getKind()+"小羊的叫声:咩咩咩~~~"); } } ``` ```java package me.feihong.catdog; public class Animal { //属性:kind(种类) private String kind; public Animal() { } //创建带参(kind为参数)构造函数 public Animal(String kind) { this.setKind(kind); } //应用封装实现对私有属性的get/set操作 public String getKind() { return kind; } public void setKind(String kind) { this.kind = kind; } //创建成员方法cry():void public void cry() { System.out.println("动物会叫~~~"); } } ``` ```java package me.feihong.test; import me.feihong.catdog.*; public class Test { public static void main(String[] args) { //生成父类对象数组,数组长度为5 Animal animal[]=new Animal[5]; //产生随机数,随机产生三种具体子类的实例 for(int i=0;i<5;i++) { int temp=(int)(Math.random()*3); if(temp==0) { animal[i]=new Cat("Cat类:"); }else if(temp==1) { animal[i]=new Dog("Dog类:"); }else if(temp==2){ animal[i]=new sheep("Sheep类:"); } } //循环输出,循环体中每个对象分别调用cry()方法。 for(int i=0;i<3;i++) { animal[i].cry(); } } } ``` Loading... 应用继承和多态的思想,编写动物类,成员方法是动物叫声。写三个具体的类(猫、狗、羊),它们都是动物类的子类,并重写父类的成员方法。编写测试类,随机产生三种具体动物,调用叫声这个方法。 程序参考运行效果如图所示:  **任务分析:** **1. 定义一个父类Animal类** 属性:kind(种类) 方法:创建带参(kind为参数)构造方法 创建cry():void方法 **2. 编写三个具体的子类Cat类、Dog类、Sheep类** 分别重写父类中的 cry() 方法,输出信息分别为 Cat类:小猫的叫声:喵喵喵~~~ Dog类:小狗的叫声:汪汪汪~~~ Sheep类:小羊的叫声:咩咩咩~~~ **3. 编写测试类,首先生成长度为5的父类对象数组,然后通过循环依次向数组中存入数据,现设定存储规则为:** a) 每次随机产生一个0~2的正整数 b) 若数值为 0,则生成一个 Cat 类的对象,存入数组 c) 若数值为 1,则生成一个 Dog 类的对象,存入数组 d) 若数值为 2,则生成一个 Sheep 类的对象,存入数组 最后循环输出数组成员,并分别调用 cry() 方法。 ```java package me.feihong.catdog; public class Cat extends Animal{ public Cat() { } public Cat(String kind) { super(kind); } //重写父类cry()方法,输出信息为“小猫的叫声:喵喵喵~~~” @Override public void cry() { System.out.println(getKind()+"小猫的叫声:喵喵喵~~~"); } } ``` ```java package me.feihong.catdog; public class Dog extends Animal{ public Dog() { } public Dog(String kind) { super(kind); } //重写父类cry()方法:输出信息为“小狗的叫声:汪汪汪~~~” @Override public void cry() { System.out.println(getKind()+"小狗的叫声:汪汪汪~~~"); } } ``` ```java package me.feihong.catdog; public class sheep extends Animal{ public sheep() { } public sheep(String kind) { super(kind); } //重写父类的方法cry(),要求输出信息“小羊的叫声:咩咩咩~~~” @Override public void cry() { System.out.println(getKind()+"小羊的叫声:咩咩咩~~~"); } } ``` ```java package me.feihong.catdog; public class Animal { //属性:kind(种类) private String kind; public Animal() { } //创建带参(kind为参数)构造函数 public Animal(String kind) { this.setKind(kind); } //应用封装实现对私有属性的get/set操作 public String getKind() { return kind; } public void setKind(String kind) { this.kind = kind; } //创建成员方法cry():void public void cry() { System.out.println("动物会叫~~~"); } } ``` ```java package me.feihong.test; import me.feihong.catdog.*; public class Test { public static void main(String[] args) { //生成父类对象数组,数组长度为5 Animal animal[]=new Animal[5]; //产生随机数,随机产生三种具体子类的实例 for(int i=0;i<5;i++) { int temp=(int)(Math.random()*3); if(temp==0) { animal[i]=new Cat("Cat类:"); }else if(temp==1) { animal[i]=new Dog("Dog类:"); }else if(temp==2){ animal[i]=new sheep("Sheep类:"); } } //循环输出,循环体中每个对象分别调用cry()方法。 for(int i=0;i<3;i++) { animal[i].cry(); } } } ``` 最后修改:2019 年 12 月 31 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 如果觉得我的文章对你有用,请随意赞赏