1. 分析以下需求,并用代码实现
    2. 1.定义手机类
    3. 行为:
    4. 打电话,发短信
    5. 2.定义接口IPlay
    6. 行为:
    7. 玩游戏
    8. 3.定义旧手机类继承手机类
    9. 行为:
    10. 继承父类的行为
    11. 4.定义新手机继承手机类实现IPlay接口
    12. 行为:继承父类的行为,重写玩游戏方法
    13. 5.定义测试类
    14. 在测试类中定义一个 用手机的方法,要求该方法既能接收老手机对象,也能接收新手机对象
    15. 在该方法内部调用打电话,发短信以及新手机特有的玩游戏方法
    1. 分析:
    2. 旧手机类:打电话(){},发短信(){}
    3. 新手机类:打电话(){},发短信(){}
    1. 向上提取一个父类
    2. 抽象手机类:
    3. 打电话();
    4. 发短信();
    5. 旧手机类:继承手机类
    6. 新手机类:继承手机类
    7. 玩游戏接口:玩游戏();
    8. 新手机实现玩游戏接口,重写游戏方法
  1. package com.itheima4;
  2. //抽象手机类
  3. public abstract class Phone {
  4. public abstract void call();
  5. public abstract void sendMessage();
  6. }
  1. package com.itheima4;
  2. //玩游戏接口
  3. public interface IPlay {
  4. public abstract void playGame();
  5. }
  1. package com.itheima4;
  2. //旧手机类
  3. public class OldPhone extends Phone{
  4. @Override
  5. public void call() {
  6. System.out.println("旧手机打电话");
  7. }
  8. @Override
  9. public void sendMessage() {
  10. System.out.println("旧手机发短信");
  11. }
  12. }
  1. package com.itheima4;
  2. //新手机类
  3. public class NewPhone extends Phone implements IPlay{
  4. @Override
  5. public void playGame() {
  6. System.out.println("新手机能玩崩坏3");
  7. }
  8. @Override
  9. public void call() {
  10. System.out.println("新手机打电话");
  11. }
  12. @Override
  13. public void sendMessage() {
  14. System.out.println("新手机发短信");
  15. }
  16. }
  1. package com.itheima4;
  2. //测试
  3. public class Test {
  4. public static void main(String[] args) {
  5. OldPhone op = new OldPhone();
  6. op.call();
  7. op.sendMessage();
  8. System.out.println("------------------");
  9. NewPhone np = new NewPhone();
  10. np.call();
  11. np.sendMessage();
  12. np.playGame();
  13. }
  14. }

控制台内容

Day_08【面向对象】扩展案例2_测试旧手机新手机类,并给新手机实现玩游戏功能的更多相关文章

  1. Day_09【常用API】扩展案例2_测试小字符串在大字符串中出现的次数

    分析以下需求,并用代码实现 1.键盘录入一个大字符串,再录入一个小字符串 2.统计小字符串在大字符串中出现的次数 3.代码运行打印格式: 请输入大字符串: woaiheima,heimabutongy ...

  2. Day_08【面向对象】扩展案例1_测试项目经理类和程序员类

    分析以下需求,并用代码实现: 1.定义项目经理类 属性: 姓名 工号 工资 奖金 行为: 工作work 2.定义程序员类 属性: 姓名 工号 工资 行为: 工作work 要求: 向上抽取一个父类,让这 ...

  3. Hadoop_17_MapRduce_案例2_实现用户手机流量统计(ReduceTask并行度控制)

    需求:1.统计每一个用户(手机号)所耗费的总上行流量.下行流量,总流量 1.数据如下:保存为.dat文件(因为以\t切分数据,文件格式必须合适) 1363157985066 13726230503 0 ...

  4. Day_10【常用API】扩展案例2_获取输入日期是哪一年的哪一天的星期几

    分析以下需求,并用代码实现 1)已知日期字符串:"2015-10-20",将改日期字符串转换为日期对象 2)将(1)中的日期对象转换为日历类的对象 3)根据日历对象获取改日期是星期 ...

  5. Day_14【IO流】扩展案例2_缓冲字符输出、输入流进行用户名的创建

    需求分析 1.项目根目录下建立文件: user.txt,文件中存放用户名和登录密码,格式:用户名,密码,如:aaa,123: 2.user.txt文件中初始存放的用户信息有如下: jack,123 r ...

  6. Day_13【IO流】扩展案例2_统计键盘录入字符在指定项目文件中出现的次数

    分析以下需求,并用代码实现 键盘录入一个字符(以字符串的形式录入) 判断当前字符在info3.txt当中是否存在 如果不存在, 给出提示 如果存在, 请统计出该字符出现的次数 Info3.txt内容如 ...

  7. Day_13【IO流】扩展案例2_统计指定项目文件中字符出现的次数

    需求分析 统计当前项目下info2.txt文件中, 每个字符出现的个数 文件内容如下: welcome to itheima!!! 最终效果如下: w(1) (2)!(3)t(2)e(3)c(1)a( ...

  8. Day_12【集合】扩展案例2_键盘录入一个字符串,对其进行去重,并将去重后的字符串组成新数组

    需求分析:键盘读取一行输入,去掉其中重复字符, 打印出不同的那些字符 思路: 1.键盘录入字符串 2.遍历字符串,将每个字符存储到集合中 3.将集合中重复的字符去掉 4.创建新集合,遍历老集合,获取老 ...

  9. Day_11【集合】扩展案例2_使用普通for循环获取集合中索引为3的元素并打印,统计集合中包含字符串"def"的数量,删除集合中的所有字符串",将集合中每个元素中的小写字母变成大写字母def",

    分析以下需求,并用代码实现 1.定义ArrayList集合,存入多个字符串"abc" "def" "efg" "def" ...

随机推荐

  1. C#——继承

    在某基类中声明 virtual 并在一个或多个派生类中被重新定义的成员函数称为虚函数. 虚函数的作用就是实现多态性(Polymorphism),多态性是将接口与实现进行分离. C#作为完全面向对象语言 ...

  2. vue2.x学习笔记(十三)

    接着前面的内容:https://www.cnblogs.com/yanggb/p/12595860.html. 组件的注册 注册组件有一些规范约定与注意事项. 组件名的命名规范 在注册一个组件的时候, ...

  3. 7.关于一些dom&&获取元素

    1. 测试点击的是否是span 标签 <span onClick={this.select.bind(this)}>点击</span>   select( e ){  cons ...

  4. Spring5:概念

    1.Spring优点 spring是一个开源的免费的框架 spring是一个轻量级的 非入侵式的框架 控制反转(IOC).面向切面(AOP) 支持事务的处理,对框架整合的支持 **总之:spring就 ...

  5. RT-Thread—STM32—在线升级(Ymodem_OTA、HTTP_OTA)

    概述 本教程主要根据官方推荐的教程进行改编,详细信息请参考OTA Downloader软件包STM32 通用 Bootloader 本例程通过自己实际搭建环境,测试总结. bootloader的制作 ...

  6. tensorflow1.0 lstm学习曲线

    import tensorflow as tf import numpy as np import matplotlib.pyplot as plt BATCH_START = 0 TIME_STEP ...

  7. (第四篇)Linux命令初识之常用系统管理命令

    1.hostname [命令作用]用于显示和设置系统的主机名称(但是不会永久保存,重启后会恢复) [命令语法]hostname(选项)(参数) [常用选项] -a:显示主机别名(alias name) ...

  8. 双链表【参照redis链表结构】

    参照了Redis里面的双链表结构,可以说是完全复制粘贴,redis的双链表还是写的很通俗易懂的,没有什么花里胡哨的东西,但是redis还有个iter迭代器的结构来遍历链表.我这里就没有实现了,只是实现 ...

  9. Linux系统目录结构:目录层次标准、常用目录和文件

    1. 目录层次标准FHS FHS(Filesystem Hierarchy Standard)目录层次标准,是Linux的目录规范标准.   FHS定义了两层规范: 第一层:是"/" ...

  10. HTML JavaScript 基础(上)

    一.初识JavaScript JavaScript 和 Java什么关系? 半毛线关系都没有,只是名字有点重合而已. JavaScript 和python.C#.Java.Ruby一样,都是一门独立的 ...