在做题之前先解释一下什么是多态(简短明了):

“类的多态”其实说的就是方法的多态,主要体现在方法的重载和重写。(其实并没有那么麻烦)

接下来看题目:

设计一个动物发生模拟器,用于模拟不同动物的叫声。比如狮吼、虎啸、狗旺旺、猫喵喵……。
定义抽象类Animal,包含两个抽象方法:获取动物类别getAnimalClass()、动物叫shout();
然后基于抽象类Animal定义狗类Dog、猫类Cat和山羊Goat,用getAnimalClass()方法返回不同的动物类别(比如猫,狗,山羊),用shout()方法分别输出不同的叫声(比如喵喵、汪汪、咩咩)。
最后编写AnimalShoutTest类测试,输出:
猫的叫声:喵喵
狗的叫声:汪汪
山羊的叫声:咩咩

其中,在AnimalShoutTestMain类中,用speak(Animal animal){}方法输出动物animal的叫声,在main()方法中调用speak()方法,分别输出猫、狗和山羊对象的叫声。

请在下面的【】处添加代码。


public class AnimalShoutTest2 {public static void main(String[] args) {        Cat cat = new Cat();Dog dog = new Dog();        Goat goat = new Goat();speak(cat);speak(dog);speak(goat);}//定义静态方法speak()【】}//定义抽象类Animal
【】class Animal{【】
}
//基于Animal类,定义猫类Cat,并重写两个抽象方法
class Cat 【】{【】    【】
}
//基于Animal类,定义狗类Dog,并重写两个抽象方法
class Dog 【】{【】【】
}
//基于Animal类,定义山羊类Goat,并重写两个抽象方法
class Goat 【】{【】【】
}

输入样例:


输出样例:

猫的叫声:喵喵
狗的叫声:汪汪
山羊的叫声:咩咩

简单剖析一下此题:

在不理解“多态”时,想要做出此题还是有难度的(对于小白来说)。上面也解释了什么是“多态”,从定义角度理解会简单许多。

其中,题目要求的三个动物类有异曲同工之妙,写出来一个,其他的也都会写了(直接ctrl+c/v)。

话不多说,直接上代码(诸多细节请看代码注释代码):

public class Main {public static void main(String[] args) {Animal cat = new Cat();Animal dog = new Dog();Animal goat = new Goat();speak(cat);//由于这里的speak方法并没有返回值,所以是void类型speak(dog);speak(goat);}//定义静态方法speak(),这里直接按题目要求即可//Animal animal这里的意思是创建一个动物的对象,将上面传入的动物类别与子类对应后输出public static void speak(Animal animal) {System.out.println(animal.getAnimalClass() + "的叫声:" + animal.shout());}
}//定义父类Animalabstract class Animal {//按要求写抽象方法,以下就是标准的写发(不用加大括号)abstract public  String getAnimalClass();abstract public  String shout();}//定义猫类,并重写方法实现多态(既方法的多态)class Cat extends Animal {//@Override是在重写方法是很重要的一个语法,必须写@Overridepublic String getAnimalClass(){return "猫";}@Overridepublic String shout(){return "喵喵";}}//定义一个狗类,和猫类一样class Dog extends Animal {@Overridepublic String getAnimalClass(){return "狗";}@Overridepublic String shout(){return "汪汪";}}//定义一个山羊类,和上面一样class Goat extends Animal{@Overridepublic String getAnimalClass(){return "山羊";}@Overridepublic String shout(){return "咩咩";}}

完成收工,good!

虽然“天不生无用之人,地不长无名之草”。但仍谨记“冰冻三尺,非一日之寒”。

执长剑纵马,执妙笔生花,我王某人在此邀请诸位与我共身!

PTA 5 动物发声模拟器(多态)分数 10相关推荐

  1. 动物发声模拟器(多态)

    7-3 动物发声模拟器(多态) 分数 20 作者 刘凤良 单位 天津仁爱学院 设计一个动物发生模拟器,用于模拟不同动物的叫声.比如狮吼.虎啸.狗旺旺.猫喵喵--. 定义抽象类Animal,包含两个抽象 ...

  2. 【Java】设计一个动物声音“模拟器”,希望模拟器可以模拟许多动物的叫声。

    题目要求:设计一个动物声音"模拟器",希望模拟器可以模拟许多动物的叫声.要求如下: (1)编写抽象类Animal Animal抽象类有2个抽象方法cry()和getAnimaNam ...

  3. 解决雷电模拟器在windows 10下无法桥接网卡的问题

    https://www.ldmnq.com/forum/thread-60719-1-1.html https://www.renyiwei.com/archives/1947.html 解决雷电模拟 ...

  4. 设计一个动物声音“模拟器”,希望模拟器可以模拟许多动物的叫声。要求如下:

    设计一个动物声音"模拟器",希望模拟器可以模拟许多动物的叫声.要求如下: (1)编写抽象类Animal Animal抽象类有2个抽象方法cry()和getAnimaName(),即 ...

  5. oppo java模拟器_java动物声音模拟器

    java动物声音模拟器app是一款有趣的动物叫声模拟软件.java动物声音模拟器app提供了许多种动物的叫声,可以与孩子互动,java动物声音模拟器app还有猫语.狗语翻译功能! 软件介绍 java动 ...

  6. 7-2 动物声音“模拟器”

    abstract类和abstract()方法 设计一个动物声音"模拟器",希望模拟器可以模拟许多动物的叫声.要求如下: (1)编写抽象类Animal Animal抽象类有2个抽象方 ...

  7. 6-1 简单快速排序分数 10作者 唐艳琴单位 中国人民解放军陆军工程大学本题要求实现一个函数,可快速查找给定x(保证是整个数据中其值存在,如果x有多个,查找第一个x)在整个数据中的排名(数据

    6-1 简单快速排序 分数 10 全屏浏览题目 切换布局 作者 唐艳琴 单位 中国人民解放军陆军工程大学 本题要求实现一个函数,可快速查找给定x(保证是整个数据中其值存在,如果x有多个,查找第一个x) ...

  8. Java动物声音模拟器

    问题如下: 设计动物声音模拟器,编写抽象类Animal,模拟器类Simulator,编写Animal子类Dog和Cat类,具体题目如图: 思路: 先写抽象父类Animal,并将cry,getAnima ...

  9. 用java设计一个动物声音 模拟器,Java语言 设计一个动物声音“模拟器”(用接口实现)...

    设计一个动物声音"模拟器",希望模拟器可以模拟许多动物的叫声,要求如下. 编写接口Animal Animal接口有两个抽象方法cry()和getAnimalName(),即要求实现 ...

最新文章

  1. 领克汽车是用鸿蒙系统吗,领克全新旗舰SUV将在上海车展首发亮相
  2. mysql 去掉复合索引_MySQL性能优化[实践篇]-复合索引实例
  3. 您的手机上未安装应用程序 android 点击快捷方式提示未安装程序的解决
  4. b站python教程哪个好_推荐B站上的Python学习资源
  5. php去掉两个数组重复数据,php两个数组怎么去除重复
  6. 深度学习-Tensorflow2.2-预训练网络{7}-迁移学习基础针对小数据集-19
  7. Java基本语法(6)--算术运算符
  8. 案例:隐秘而低调的内存泄露(OOM)
  9. Java中文件复制的一个汇总
  10. git 从远程仓库指定分支clone代码到本地
  11. WINDOWS下主机名找IP IP找主机名
  12. python科学计算第三版-python科学计算pdf下载
  13. VGG16网络结构图及pytorch 代码实现
  14. 1秒钟等于多少毫秒,等于多少微秒
  15. 自然辩证法小总结思维导图
  16. Pluck 代码问题漏洞( CVE-2022-26965)
  17. k8s容器部署elasticsearch+kibana+cerebro
  18. 如果让测试员来拍《程序员那么可爱》,剧情会是什么样的?
  19. 初试Android原生弹窗
  20. 清北师哥推荐的CV/NLP 算法工程师培养计划,强无敌!

热门文章

  1. 队列及其应用-取牌游戏
  2. Apache Tomcat 下载网站惊现校内(xiaonei)镜像
  3. 易优如何新建自定义模板
  4. Hibernate查询多个表的数据的方法
  5. 计算机二级office学习之PPT操作题考点整理
  6. VUE-flex布局之align-items交叉轴对齐方式(5)
  7. 拼多多货源代销怎么样,货源怎么找?
  8. (翻译)A Deep Learning-Based Approach to Progressive Vehicle Re-identification for Urban Surveillance
  9. python中获取文件扩展名
  10. ITE平台开发 chapter5之jperf测试网络吞吐量