PTA 5 动物发声模拟器(多态)分数 10
在做题之前先解释一下什么是多态(简短明了):
“类的多态”其实说的就是方法的多态,主要体现在方法的重载和重写。(其实并没有那么麻烦)
接下来看题目:
设计一个动物发生模拟器,用于模拟不同动物的叫声。比如狮吼、虎啸、狗旺旺、猫喵喵……。
定义抽象类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相关推荐
- 动物发声模拟器(多态)
7-3 动物发声模拟器(多态) 分数 20 作者 刘凤良 单位 天津仁爱学院 设计一个动物发生模拟器,用于模拟不同动物的叫声.比如狮吼.虎啸.狗旺旺.猫喵喵--. 定义抽象类Animal,包含两个抽象 ...
- 【Java】设计一个动物声音“模拟器”,希望模拟器可以模拟许多动物的叫声。
题目要求:设计一个动物声音"模拟器",希望模拟器可以模拟许多动物的叫声.要求如下: (1)编写抽象类Animal Animal抽象类有2个抽象方法cry()和getAnimaNam ...
- 解决雷电模拟器在windows 10下无法桥接网卡的问题
https://www.ldmnq.com/forum/thread-60719-1-1.html https://www.renyiwei.com/archives/1947.html 解决雷电模拟 ...
- 设计一个动物声音“模拟器”,希望模拟器可以模拟许多动物的叫声。要求如下:
设计一个动物声音"模拟器",希望模拟器可以模拟许多动物的叫声.要求如下: (1)编写抽象类Animal Animal抽象类有2个抽象方法cry()和getAnimaName(),即 ...
- oppo java模拟器_java动物声音模拟器
java动物声音模拟器app是一款有趣的动物叫声模拟软件.java动物声音模拟器app提供了许多种动物的叫声,可以与孩子互动,java动物声音模拟器app还有猫语.狗语翻译功能! 软件介绍 java动 ...
- 7-2 动物声音“模拟器”
abstract类和abstract()方法 设计一个动物声音"模拟器",希望模拟器可以模拟许多动物的叫声.要求如下: (1)编写抽象类Animal Animal抽象类有2个抽象方 ...
- 6-1 简单快速排序分数 10作者 唐艳琴单位 中国人民解放军陆军工程大学本题要求实现一个函数,可快速查找给定x(保证是整个数据中其值存在,如果x有多个,查找第一个x)在整个数据中的排名(数据
6-1 简单快速排序 分数 10 全屏浏览题目 切换布局 作者 唐艳琴 单位 中国人民解放军陆军工程大学 本题要求实现一个函数,可快速查找给定x(保证是整个数据中其值存在,如果x有多个,查找第一个x) ...
- Java动物声音模拟器
问题如下: 设计动物声音模拟器,编写抽象类Animal,模拟器类Simulator,编写Animal子类Dog和Cat类,具体题目如图: 思路: 先写抽象父类Animal,并将cry,getAnima ...
- 用java设计一个动物声音 模拟器,Java语言 设计一个动物声音“模拟器”(用接口实现)...
设计一个动物声音"模拟器",希望模拟器可以模拟许多动物的叫声,要求如下. 编写接口Animal Animal接口有两个抽象方法cry()和getAnimalName(),即要求实现 ...
最新文章
- 领克汽车是用鸿蒙系统吗,领克全新旗舰SUV将在上海车展首发亮相
- mysql 去掉复合索引_MySQL性能优化[实践篇]-复合索引实例
- 您的手机上未安装应用程序 android 点击快捷方式提示未安装程序的解决
- b站python教程哪个好_推荐B站上的Python学习资源
- php去掉两个数组重复数据,php两个数组怎么去除重复
- 深度学习-Tensorflow2.2-预训练网络{7}-迁移学习基础针对小数据集-19
- Java基本语法(6)--算术运算符
- 案例:隐秘而低调的内存泄露(OOM)
- Java中文件复制的一个汇总
- git 从远程仓库指定分支clone代码到本地
- WINDOWS下主机名找IP IP找主机名
- python科学计算第三版-python科学计算pdf下载
- VGG16网络结构图及pytorch 代码实现
- 1秒钟等于多少毫秒,等于多少微秒
- 自然辩证法小总结思维导图
- Pluck 代码问题漏洞( CVE-2022-26965)
- k8s容器部署elasticsearch+kibana+cerebro
- 如果让测试员来拍《程序员那么可爱》,剧情会是什么样的?
- 初试Android原生弹窗
- 清北师哥推荐的CV/NLP 算法工程师培养计划,强无敌!