PTA-6-48 使用面向对象的思想编写程序描述动物

题目:

使用面向对象的思想编写程序描述动物,说明:

(1) 分析兔子和青蛙的共性,定义抽象的动物类,拥有一些动物共有的属性:名字、颜色、类别(哺乳类、非哺乳类),以及共有的行为:吃东西,发出叫声。

(2)定义一些特殊能力做为接口,例如游泳,飞翔。

(3)定义三种动物:兔子继承动物类;根据青蛙会游泳,因此继承动物同时实现游泳接口;老鹰会飞,因此继承动物同时实现飞翔接口。

(4)设计测试类,调用子类所覆写的这些抽象方法。

已有的抽象类定义如下:

abstract class Animal{   //动物类private String name;//名字private String color;//颜色private String type;//类别(哺乳类、非哺乳类) public Animal(String name, String color, String type){       this.name = name;this.color = color;this.type = type;}public String getName(){return name;}  public String getColor(){return color;}   public String getType(){return type;}     public abstract void shout();   public abstract void eat();
}

需要编写两个接口体现特殊能力:

(1)定义一个游泳的接口Swimmable,在此接口中有抽象方法swim()。

(2)定义一个游泳的接口Flyable,在此接口中有抽象方法fly()。

需要编写三个子类兔子、青蛙和老鹰:

(1) 定义一个子类Rabbit,兔子不会飞也不会游泳,继承动物类,并覆写shout()和eat()方法。

(2) 定义一个子类Frog,青蛙不会飞但会游泳,继承动物类并实现接口Swimmable,并覆写shout()、eat()方法和swim()方法。

(3) 定义一个子类Eagle,老鹰会飞但不会游泳,继承动物类并实现接口Flyable,并覆写shout()、eat()方法和fly()方法。

已有的Main类定义

/* 请在这里填写答案 */public class Main{public static void main(String[] args) {AnimalAction(new Rabbit("小白", "白色", "哺乳类"));      System.out.println("====================");AnimalAction(new Frog("弗洛格", "绿色", "非哺乳类"));SwimAction(new Frog("弗洛格", "绿色", "非哺乳类"));System.out.println("====================");AnimalAction(new Eagle("凤头鹰","灰色","非哺乳类"));FlyAction(new Eagle("凤头鹰","灰色","非哺乳类"));}public static void AnimalAction(Animal an) {an.shout();an.eat();}public static void SwimAction(Swimmable s) {s.swim();}public static void FlyAction(Flyable f) {f.fly();}
}


根据题目要求,代码实现如下:

interface Swimmable {abstract void swim();
}interface Flyable {abstract void fly();
}
class Rabbit extends Animal {public Rabbit(String name, String color, String type) {super(name, color, type);}@Overridepublic void shout() {System.out.println("那只"+super.getColor()+"的,名字叫"+super.getName()+"的兔子正在叽叽的叫");}@Overridepublic void eat() {System.out.println("兔子是哺乳类,爱吃胡萝卜");}
}class Frog extends Animal implements Swimmable {public Frog(String name, String color, String type) {super(name, color, type);}@Overridepublic void shout() {System.out.println("那只"+super.getColor()+"的,名字叫"+super.getName()+"的青蛙正在呱呱的叫");}@Overridepublic void eat() {System.out.println("青蛙是非哺乳类,爱吃昆虫");}@Overridepublic void swim() {System.out.println("青蛙是游泳高手");}
}
class Eagle extends Animal implements Flyable {public Eagle(String name, String color, String type) {super(name, color, type);}@Overridepublic void shout() {System.out.println("那只"+super.getColor()+"的,名字叫"+super.getName()+"的老鹰正在啾啾的叫");}@Overridepublic void eat() {System.out.println("老鹰是非哺乳类,爱吃小鸡");}@Overridepublic void fly() {System.out.println("老鹰是飞翔高手");}
}

以上就是 PTA-6-48 使用面向对象的思想编写程序描述动物 的全部内容了,希望能对你有所帮助!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/179468.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

20分钟拥有自己的ChatGPT4,高效低成本,小白必看

准备工作 1、准备一个3.5的账号 2、一张虚拟卡 开始步骤 从ChatGPT第一版发布到现在,还不到一年的时间中,可是它使用的GPT架构已经从3.5版本进化到现在的4.0版本,随之而来的是其能力的极大提升。下面是GPT-4在其官网的介绍中的一句话&…

conda环境下 ERROR: CMake must be installed to build dlib问题解决

1 问题描述 pip install -r requirements.txt 在构建video_retalking项目过程中,使用命令安装依赖包时,出现如下错误: Building wheels for collected packages: face-alignment, dlib, ffmpy, futureBuilding wheel for face-alignment …

与中通支付对接

最近项目接入商户,商户需要同步给中通支付,报错两个异常已解决。 一、json报错 未接入中通SKD之前,不会报错,接入后,json转换异常。 排查后发现,中通的jar包里JSON版本太低,与自身项目的版本冲…

不会写代码也能做自动化?推荐一款自动化测试神器

在软件测试这条道路上,大部分的职业技能发展道路都会是纯业务手工测试→自动化测试→性能测试→安全测试/测试开发。 但是却有着一部分人起初进入软件测试这一行看重的就是软件测试属于IT行业,门槛比较低,不需要代码基础。 这就导致了这一部…

0基础学java-day9

一、房屋出租系统-需求&&界面 1项目需求说明 实现基于文本界面的《房屋出租软件》。 能够实现对房屋信息的添加、修改和删除(用数组实现),并能够打印房屋明细表 2 房屋出租系统-界面 2.1 项目界面 - 主菜单 2.2项目界面- 新增房…

Linux编写Shell命令脚本

1.编写Shell脚本 可以将Shell终端解释器当作人与计算机硬件之间的“翻译官”,它作为用户与Linux系统内部的通信媒介,除了能够支持各种变量与参数外,还提供了诸如循环、分支等高级编程语言才有的控制结构特性。要想正确使用Shell中的这些功能…

git的创建以及使用

1、上传本地仓库 首先确定项目根目录中没有.git文件,有的话就删了,没有就下一步。在终端中输入git init命令。注意必须是根目录! 将代码存到暂存区 将代码保存到本地仓库 2、创建git仓库 仓库名称和路径(name)随便写…

vscode 里怎么自动提示 webpack 配置项?

webpack 的配置项非常多,容易忘记,能自动提示很有用,就是在配置文件里面添加下面代码 // 下面这行用于 vscode 中智能化自动提示 webpack 配置项 /** type {import(webpack).Configuration} */

文本三剑客之sed

一、sed编辑器 ■ sed是一种流编辑器,流编辑器会在编辑器处理数据之前基于预先提供的—组规则来编辑数据流 ■ sed编辑器可以根据命令来处理数据流中的数据,这些命令要么从命令行中输入,要么存储在一个命令文本文件中 1、sed的工作流程主要…

分享一个适用于 Vue3 的好的组件库,PrimeVue组件。

一、PrimeVue介绍 PrimeVue 是一个基于 Vue.js 的 UI 组件库,专注于提供丰富、灵活、现代的 UI 组件,以帮助开发者构建功能强大的 Web 应用程序。PrimeVue 提供了一系列的组件,涵盖了从基本的表单元素到高级的数据表格和图表等各种组件。 二、…

大模型fine-tune 微调

大模型的 Fine-tune 我们对技术的理解,要比技术本身更加重要。 正如我在《大模型时代的应用创新范式》一文中所说,大模型会成为AI时代的一项基础设施。 作为像水、电一样的基础设施,预训练大模型这样的艰巨任务,只会有少数技术…

测试用例设计全网最强篇(建议收藏)

本篇从多角度带大家从0开始学习怎么写测试用例,七种方法8个案例(含用例模板);学习目标:测试用例的基本知识以及黑盒测试用例的设计方法。 前言:总体编写策略: 对于测试用例编写来说&#xff0…

只会在终端使用Python运行代码?这些高级用法了解了解

大部分同学在终端使用Python可能只是简单的执行代码,但其实结合一些Python内置模块或第三方库可以实现更高级且便捷的用法,一起看看吧 插播,更多文字总结指南实用工具科技前沿动态第一时间更新在公粽号【啥都会一点的研究生】 代码Benchmar…

香港科技大学数据建模(MSc DDM)硕士学位项目(2024年秋季入学)招生宣讲会-武汉专场

时间:2023 年12 月 8 日(周五) 15:00 地点:华中科技大学大学生活动中心B座303 嘉宾教授:张锐 教授 项目旨在培养科学或工程背景的学员从数据中提取信息的数据建模能力,训练其拥有优秀的解难和逻辑思考与分…

第一百八十三回 如何给图片添加阴影

文章目录 1. 概念介绍2. 思路与方法2.1 实现思路2.2 实现方法 3. 代码与效果3.1 示例代码3.2 运行效果 4. 内容总结 我们在上一章回中介绍了"自定义可以滑动的刻度尺"样相关的内容,本章回中将介绍" 如何给图片添加阴影".闲话休提,让…

Windows环境下的JDK安装与环境配置

一、JDK下载 1、打开Oracle官方网站下载页 Java Downloads | Oracle 中国 2、选择Java archive页,在版本列表中选择需要下载的版本 3、选择系统环境对应的版本,点击对应的下载按钮,弹出技术许可勾选框 4、勾选Oracle技术许可协议 5、输入Or…

人工智能即将彻底改变你使用计算机的方式

文章目录 每个人的私人助理“Clippy 是一个机器人,而不是特工。”卫生保健“一半需要心理健康护理的美国退伍军人没有得到治疗。”教育生产率娱乐和购物科技行业的冲击波技术挑战隐私和其他重大问题 今天我仍然像保罗艾伦和我创办微软时一样热爱软件。但是&#xff…

项目监控:项目跟踪和控制的工具和步骤

项目管理不仅仅是分配和审查任务,还包括平衡团队成员的工作量、创建预测和避免障碍的工作流程。整个过程涉及许多步骤,因此,项目监控成为了成功业务活动的关键之一,是项目经理确保与团队共同实施的计划顺利进行的方式。 项目监控为…

案例-某乎参数x-zse-96逆向补环境

文章目录 前言一、流程分析二、导出代码三、补环境总结 前言 本文章中所有内容仅供学习交流使用,不用于其他任何目的,不提供完整代码,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则…

springboot实现验证码功能

转载自 : www.javaman.cn 1、编写工具类生成4位随机数 该工具类主要生成从0-9,a-z,A-Z范围内产生的4位随机数 /*** 产生4位随机字符串*/public static String getCheckCode() {String base "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmn…