java-接口之运动员教练员综合案例
案例需求:
教练员:
乒乓球教练员,篮球教练员
运动员:
乒乓球运动员,篮球运动员
要求:乒乓球教练员和乒乓球运动员必须要学习必要的英语。
需求分析:
篮球,乒乓球教练员都是教练员,而且教练员不是具体的哪一类,所以是抽象类。
篮球,乒乓球运动员都是运动员,而且运动员不是具体的哪一类,所以也是抽象类。
教练员和运动员都是人,所以需要定义一个抽象父类人类。
由于特定了一些人需要学外语,所以定义一个英语接口功能。
具体实现如下:
接口:
package com.hause.day10;public interface SpeakEnglish {public void speak();}
人类:
package com.hause.day10;public abstract class Person {private String name;private int age;public abstract void eat();public void sleep(){System.out.println("人都要睡觉!");}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public void show(){System.out.println("姓名:"+name+"年龄:"+age);}}
教练员类:
package com.hause.day10;public abstract class Coach extends Person{public abstract void teach();}
运动员类:
package com.hause.day10;public abstract class Player extends Person {public abstract void study();
}
乒乓教练员类:
package com.hause.day10;public class PingPangCoach extends Coach implements SpeakEnglish{public void speak() {System.out.println("乒乓球教练交运动员打乒乓球的同时还要学习英语!");}public void teach() {System.out.println("乒乓球教练交运动员打乒乓球!");}public void eat() {System.out.println("乒乓球教练吃乒乓球教练的饭!");}}
篮球教练员类:
package com.hause.day10;public class BasketCoach extends Coach {public void teach() {System.out.println("篮球教练教授运动员打篮球!");}public void eat() {System.out.println("篮球教练吃篮球教练的饭!");}
}
乒乓运动员类:
package com.hause.day10;public class PingPang extends Player implements SpeakEnglish {public void study() {System.out.println("乒乓球运动员学习打乒乓球!");}public void eat() {System.out.println("乒乓球运动员吃乒乓球的饭!");}public void speak() {System.out.println("乒乓球运动员学习打乒乓球时候还要学习英语!");}}
篮球运动员类:
package com.hause.day10;public class Basketball extends Player{public void study() {System.out.println("篮球球运动员学习打篮球球!");}public void eat() {System.out.println("篮球球运动员吃篮球球的饭!");}}
测试类:
package com.hause.day10;
/**具体类调用 * */
public class Main {public static void main(String[] args) {//创建乒乓球与动员对象PingPang pp = new PingPang();pp.setName("李春男");pp.setAge(25);pp.show();pp.eat();pp.study();pp.sleep();pp.speak();System.out.println("************************");//创建乒乓球教练对象PingPangCoach ppp = new PingPangCoach();ppp.setName("河南科技大学");ppp.setAge(26);ppp.show();ppp.eat();ppp.teach();ppp.sleep();ppp.speak();System.out.println("******************************************");//创建篮球运动员对象Basketball bb = new Basketball();bb.setName("杨莉");bb.setAge(22);bb.show();bb.study();bb.eat();bb.sleep();System.out.println("******************************************");//创建篮球教练对象BasketCoach bc = new BasketCoach();bc.setName("杨莉");bc.setAge(22);bc.show();bc.teach();bc.eat();bc.sleep();}}
输出:
姓名:李春男年龄:25
乒乓球运动员吃乒乓球的饭!
乒乓球运动员学习打乒乓球!
人都要睡觉!
乒乓球运动员学习打乒乓球时候还要学习英语!
************************
姓名:河南科技大学年龄:26
乒乓球教练吃乒乓球教练的饭!
乒乓球教练交运动员打乒乓球!
人都要睡觉!
乒乓球教练交运动员打乒乓球的同时还要学习英语!
******************************************
姓名:杨莉年龄:22
篮球球运动员学习打篮球球!
篮球球运动员吃篮球球的饭!
人都要睡觉!
******************************************
姓名:杨莉年龄:22
篮球教练教授运动员打篮球!
篮球教练吃篮球教练的饭!
人都要睡觉!
java-接口之运动员教练员综合案例相关推荐
- Java11-day02【多态(成员访问、多态转型、内存图解)、抽象类(成员特点)、接口(成员特点)、类和接口的关系、抽象类和接口的区别、综合案例】
视频+资料(工程源码.笔记)[链接:https://pan.baidu.com/s/1MdFNUADVSFf-lVw3SJRvtg 提取码:zjxs] Java基础--学习笔记(零起点打开java ...
- 【Java】抽象类继承的综合案例
文章目录 2.1 综合案例:群主发普通红包 1. 抽象类 1.1 概述 由来 父类中的方法,被它的子类们重写,子类各自的实现都不尽相同.那么父类的方法声明和方法主 体,只有声明还有 意义,而方法主体则 ...
- Java接口实现多态 -- 笔记本电脑综合实例
前言 在开始分享之前,请大家思考三个问题 . 1,什么是多态? 2,多态有几种实现方式(除了接口还有什么可以实现多态,答案不唯一.) 3,多态的好处 答案:大家可以把自己的见解分享到下面评论里 下面以 ...
- 第九课 Java基础篇——面向对象(综合案例)
1.文字版格斗游戏 格斗游戏,每个游戏角色的姓名,血量,都不相同,在选定人物的时候(〈new对象的时候),这些信息就应该被确定下来. Role.Java package cn.nwafu;import ...
- Java基础加强重温_05:Iterator迭代器、增强for循环、集合综合案例-斗地主、数据结构(栈、队列、数组、链表、红黑树)、List接口、Set接口
摘要: Java基础加强重温_05: Iterator迭代器(指针跟踪元素). 增强for循环(格式.底层). 集合综合案例-斗地主(代码规范抽取代码,集合元素打乱). 数据结构[栈(先进后出,子弹夹 ...
- Java集合之Collection集合、泛型 【集合综合案例:赌神、赌侠、赌神斗地主】
第一章. Collection集合 1.1 集合概述 集合:集合是java中提供的一种容器,可以用来存储多个数据. 集合和数组既然都是容器,它们有啥区别呢? 数组的长度是固定的.集合的长度是可变的. ...
- JAVA WEB DAY 16_ 综合案例-联系人管理系统
文章目录 综合案例-联系人管理系统 01-案例演示和功能说明-[★★] 02-项目环境搭建和数据准备-[★★★] 项目结构 准备数据表 主配置文件 sqlMapConfig.xml 03-创建工具类- ...
- java day52【综合案例day04】
由java day51[综合案例day03] 14. 旅游线路收藏功能 14.1 分析 14.1.1 判断当前登录用户是否收藏过该线路 当页面加载完成后,发送ajax请求,获取用户是否收藏的标记 ...
- java day51【综合案例day03】
由java day50[综合案例day02] 12.旅游线路名称查询 12.1 查询参数的传递 在header.html中 $("#search-button").click ...
最新文章
- 关于Python中的yield(转载)
- 何恺明最新一作论文:无监督胜有监督,迁移学习无压力,刷新7项检测分割任务...
- nginx进程管理之worker进程
- 测试使用navicat工具将MySQL格式SQL文件导入到MogDB数据库
- 侧信道攻击,从喊666到入门之——Unicorn的环境构建
- 苹果Mac定制化App开发神器:FileMaker Pro
- 1t硬盘怎么分区最好_还在用128G Macbook?699元升级1T英睿达SSD
- 用MSDN下载镜像(以Windows11为例)
- 牛学长苹果数据管理工具
- 网易云游戏王者荣耀服务器无响应,玩王者荣耀为什么不能听网易云,王者荣耀与网易云无法同时发声...
- laravel 使用队列进行微信模板消息的群发
- 重装Win10系统有教程吗?如何在线一键重装Win10系统?
- listen监听队列刨析
- 每日一题——LeetCode977(有序数组的平方)二种方法
- mac 系统下android源码下载以及使用(总结)
- android 通讯录 编程,以编程方式批量添加数千个Android联系人
- 客户案例|低代码上的西门子,乘风破浪的财务部
- SPC Control Chart Tools for JavaScript/TypeScript
- Nginx X-Forwarded-For 和 $proxy_add_x_forwarded_for 的意思
- python视频转换字符动画_视频转字符动画-Python-60行代码
热门文章
- 支持OneNote for Window10代码高亮工具
- 共享内存的创建和映射shmget()和shmat()
- 数据处理-21.数据分析常用流程
- Informatica Big Data Management 运维命令
- 附录3:实验结果与简单分析
- 复习记忆PE导入导出表
- Python 怎么利用Python绘制二元高次隐函数的函数图像及其极值点——以某双核论文模型方程为例
- PHP 如何安装ionCube扩展
- 瞪羚优化算法Gazelle optimization algorithm附matlab代码
- css盒子模型有几种?以及盒模型设置?