PTA-6-46 手机接口-适配器模式

题目:

        用适配器模式编写程序代码。设计一个接口Phone,包含五个抽象方法:dial ()、location()、photo()、music()、video(),分别表示拨号、定位、拍照、音乐、视频功能。定义一个抽象类实现接口所有方法,以及定义两个子类继承此抽象类。具体要求如下。

已有的接口定义如下:

interface Phone{void dial ();void location();void photo();void music();void video();
}

需要编写抽象类PhoneAdapter:

定义一个抽象类PhoneAdapter实现接口Phone,在此类中覆写接口中所有抽象方法。

需要编写两个子类:

(1) 定义一个子类OldPhone直接继承抽象类PhoneAdapter,有选择的实现dial ()、location()方法。

(2) 定义一个子类HuawPhone直接继承抽象类PhoneAdapter,有选择的实现dial ()、photo()、music()、video()方法。

已有的Main类定义

/* 请在这里填写答案 */public class Main{public static void main(String[] args) {print(new OldPhone());print(new HuawPhone());}public static void print(Phone p) {p.dial();p.location();p.photo();p.music();p.video();}
}

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


abstract class PhoneAdapter implements Phone{@Overridepublic void dial() {// TODO Auto-generated method stub}@Overridepublic void location() {// TODO Auto-generated method stub}@Overridepublic void photo() {// TODO Auto-generated method stub}@Overridepublic void music() {// TODO Auto-generated method stub}@Overridepublic void video() {// TODO Auto-generated method stub}
}class OldPhone extends PhoneAdapter {public void dial() {System.out.println("老人机拨打电话。");}public void location() {System.out.println("老人机定位。");}
}class HuawPhone extends PhoneAdapter {public void dial() {System.out.println("华为手机拨打电话。");}public void photo() {System.out.println("华为手机拍照。");}public void music() {System.out.println("华为手机播放音乐。");}public void video() {System.out.println("华为手机播放视频。");}
}

以上就是  PTA-6-46 手机接口-适配器模式  的全部内容了,希望能对你有所帮助!

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

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

相关文章

Less 嵌套规则

文章目录 前言描述style.less输出后言 前言 hello world欢迎来到前端的新世界 😜当前文章系列专栏:Sass和Less 🐱‍👓博主在前端领域还有很多知识和技术需要掌握,正在不断努力填补技术短板。(如果出现错误,…

数据库基础教程之创建触发器,实现自动更新时间戳(四)

postgresql 更新时间戳需要通过触发器来实现,这里给出两种方法来实现。 创建字段create_time和edit_time 通过Navicat在添加字段时候将字段设置为timestamp类型,生成时间戳方式为CURRENT_TIMESTAMP或者设置为now(),然后点击保存。 新建函数 点击函数,然后在弹出的函数向导中…

斐波那契数(力扣LeetCode)动态规划

斐波那契数(力扣LeetCode)动态规划 题目描述 斐波那契数 (通常用 F(n) 表示)形成的序列称为 斐波那契数列 。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。也就是: F(0) 0,F…

RabbitMQ之MQ的可靠性

文章目录 前言一、数据持久化交换机持久化队列持久化消息持久化 二、LazyQueue控制台配置Lazy模式代码配置Lazy模式更新已有队列为lazy模式 总结 前言 消息到达MQ以后,如果MQ不能及时保存,也会导致消息丢失,所以MQ的可靠性也非常重要。 一、…

将本地项目上传到gitee

本文详细介绍如何将本地项目上传到gitee 1.登录gitee创建一个与本地项目名相同的仓库 2.进入本地项目所在路径,打开Git Bash 3.执行初始化命令 git init4.添加远程仓库 4.1 点击复制你的HTTPS仓库路径 4.2 执行添加远程仓库命令 git remote add origin 你的…

Vue常见的实现tab切换的两种方法

目录 方法一&#xff1a;事件绑定属性绑定 效果图 完整代码 方法二&#xff1a;属性绑定 动态组件 component标签 效果图 完整代码 方法一&#xff1a;事件绑定属性绑定 效果图 完整代码 <!DOCTYPE html> <html lang"en"> <head><meta c…

【中间件】消息队列中间件intro

中间件middleware 内容管理 introwhy use MQMQ实现漫谈主流消息队列QMQ IntroQMQ架构QMQ 存储模型 本文还是从理论层面分析消息队列中间件 cfeng现在处于理论分析阶段&#xff0c;以中间件例子&#xff0c;之前的blog对于中间件是从使用角度分享了相关的用法&#xff0c;现在就…

vue--The template root requires exactly one element.的解决办法

[vue/no-multiple-template-root] The template root requires exactly one element.eslint-plugin-vue 在vue中会出现以上问题 这是因为vue的模版中只有能一个根节点&#xff0c;所以在<template>中插入第二个元素就会报错 解决方案&#xff1a; 将<template>…

Vue框架学习笔记-Object.defineproperty函数

文章目录 前文提要Object.defineProperty作用Object.defineProperty参数使用例图getter&#xff0c;也就是get函数setter&#xff0c;也就是set函数 前文提要 本人仅做个人学习记录&#xff0c;如有错误&#xff0c;请多包涵 Object.defineProperty作用 当在js中声明了一个变…

在我国干独立游戏开发有多难?

游戏独立开发在中国&#xff0c;一直以来都是一条充满挑战的道路。尽管有着无限的激情和创意&#xff0c;但面对市场、资金、政策等多方面的困难&#xff0c;许多独立开发者在这条路上艰难前行。 首先&#xff0c;市场竞争激烈是中国游戏独立开发者面临的首要挑战。随着游戏产…

【Amazon】通过代理连接的方式导入 AWS EKS集群至KubeSphere主容器平台

文章目录 一、设置主集群方式一&#xff1a;使用 Web 控制台方式二&#xff1a;使用 Kubectl命令 二、在主集群中设置代理服务地址方式一&#xff1a;使用 Web 控制台方式二&#xff1a;使用 Kubectl命令 三、登录控制台验证四、准备成员集群方式一&#xff1a;使用 Web 控制台…

【好玩的 Docker 项目】目前最好用的网盘直链程序 ——AList,支持市面上几乎所有网盘!可以代替 Olaindex!

之前给大家介绍了 Olaindex 这个网盘直链程序,大家反馈还不错。 姨妈级安装教程!Olaindex—— 一款颜值贼高的 OneDrive 网盘直链项目 当时咕咕搭了一个,域名是:https://share.laoda.de 但是现在访问已经不是 olaindex 了,原因是这个网盘直链程序莫名其妙崩了…… 考虑到…

车载以太网-网络层-IPv4

文章目录 车载以太网IPv4协议IPv4报文格式IPv4协议报文示例车载以太网IPv4协议测试车载以太网IPv4协议 车载以太网IPv4协议是一种用于车辆网络通信的协议,它基于以太网技术,使用IPv4协议进行数据传输。该协议通常用于车辆内部的通信,例如车载娱乐系统、车载导航系统、车载安…

Labelme加载AI(Segment-Anything)模型进行图像标注

labelme是使用python写的基于QT的跨平台图像标注工具&#xff0c;可用来标注分类、检测、分割、关键点等常见的视觉任务&#xff0c;支持VOC格式和COCO等的导出&#xff0c;代码简单易读&#xff0c;是非常利用上手的良心工具。 第一步&#xff1a;   下载源码进行安装。 g…

Redis 基本命令—— 超详细操作演示!!!

内存数据库 Redis7—— Redis 基本命令 三、Redis 基本命令&#xff08;下&#xff09;3.8 benchmark 测试工具3.9 简单动态字符串SDS3.10 集合的底层实现原理3.11 BitMap 操作命令3.12 HyperLogLog 操作命令3.13 Geospatial 操作命令3.14 发布/订阅命令3.15 Redis 事务 四、Re…

kafka 集群 KRaft 模式搭建

Apache Kafka是一个开源分布式事件流平台&#xff0c;被数千家公司用于高性能数据管道、流分析、数据集成和关键任务应用程序 Kafka 官网&#xff1a;https://kafka.apache.org/ Kafka 在2.8版本之后&#xff0c;移除了对Zookeeper的依赖&#xff0c;将依赖于ZooKeeper的控制器…

Screen操作

detach&#xff1a;detach是指将当前运行的Screen会话从终端分离&#xff08;detach&#xff09;&#xff0c;使其在后台继续运行而不受当前终端窗口的影响。这样&#xff0c;你可以在一个终端窗口中启动一个Screen会话&#xff0c;然后在需要的时候将其分离&#xff0c;使其在…

紫光展锐 展讯芯片 展讯处理器解锁BL 各分区结构 ROM 分区列表代表什么 bin img 表示什么意思

是展锐 Android 10.0、Android 9.0 平台 ROM 空间划分情况以及分区格式、分区大小和分区功能的 初步描述。 prodnv 开机后系统中的 productinfo 分区&#xff0c;保 存 adc 校准参数、eng.db 数据库。 Miscdata 保存 ota、recovery 时的一些数据 recovery 存放 recovery.i…

Horizon地平线财富一直坚持“创新、开放、协作、共享”的运营理念

在“寒风凛冽”的熊市&#xff0c;投资人需要一颗不断探索、勇于尝试的心。 勇气意味着即使你知道这条路很难&#xff0c;你仍然选择坚持。而信念则是相信&#xff0c;即使现在很多人不理解、甚至嘲笑&#xff0c;未来总会有一天他们会明白。 Horizon一直坚持着“创新、开放、…

058-第三代软件开发-文件Model

第三代软件开发-文件Model 文章目录 第三代软件开发-文件Model项目介绍文件Model 关键字&#xff1a; Qt、 Qml、 关键字3、 关键字4、 关键字5 项目介绍 欢迎来到我们的 QML & C 项目&#xff01;这个项目结合了 QML&#xff08;Qt Meta-Object Language&#xff09;…