1 /*
  2  教练和运动员案例(学生分析然后讲解)
  3     乒乓球运动员和篮球运动员。
  4     乒乓球教练和篮球教练。
  5     为了出国交流,跟乒乓球相关的人员都需要学习英语。
  6     请用所学知识:
  7     分析,这个案例中有哪些抽象类,哪些接口,哪些具体类。
  8         分析:
  9             1、共同的属性:姓名 年龄
 10                    共同的方法:吃饭,睡觉
 11                    其中吃饭的内容两者不同,所以用抽象方法
 12                    不同的方法:队员练习,教练教导,分别写入队员类和教练类
 13             2、接口:学习英语
 14             3、抽象类:人类;  运动员类、教练类 这两个继承人类
 15                    具体类:乒乓球队员类、教练类和篮球队员类、教练类 ; 分别继承运动员类或教练类,其中乒乓球有关的扩展学习英语接口
 16 */
 17
 18 //定义学英语接口
 19 interface English{
 20     public abstract void speak();
 21 }
 22
 23 //定义抽象人类
 24 abstract class person{
 25     //成员变量
 26     private String name;
 27     private int age;
 28
 29     //无参构造方法
 30     public person(){}
 31
 32     //有参构造方法
 33     public person(String name,int age){
 34         this.name = name;
 35         this.age = age;
 36     }
 37
 38     public String getName(){
 39         return name;
 40     }
 41     public void setName(String name){
 42         this.name = name;
 43     }
 44     public int getAge(){
 45         return age;
 46     }
 47     public void setAge(int age){
 48         this.age = age;
 49     }
 50
 51     //抽象方法
 52     public abstract void eat();
 53     //成员方法
 54     public void sleep(){
 55         System.out.println("睡觉去");
 56     }
 57 }
 58
 59 //抽象运动员类
 60 abstract class player extends person{
 61     //无参构造方法
 62     public player(){}
 63     //有参构造方法
 64     public player(String name,int age){
 65         super(name,age);
 66     }
 67     //特有的方法,练习,不得不做的,用抽象
 68     public abstract void student();
 69 }
 70
 71 //抽象教练类
 72 abstract class coach extends person{
 73     public coach(){}
 74     public coach(String name,int age){
 75         super(name,age);
 76     }
 77     public abstract void teacher();
 78 }
 79
 80 //具体乒乓球运动类
 81 class pingpangplayer extends player implements English{
 82     public pingpangplayer(){}
 83     public pingpangplayer(String name,int age){
 84         super(name,age);
 85     }
 86     public void speak() {
 87         System.out.println("要学习英语");
 88     }
 89     public void student() {
 90         System.out.println("要练习发球和接球的技巧");
 91     }
 92     public void eat() {
 93         System.out.println("吃清淡的饭菜");
 94     }
 95 }
 96
 97 //具体乒乓球教练类
 98 class pingpangcoach extends coach implements English{
 99     public pingpangcoach(){}
100     public pingpangcoach(String name,int age){
101         super(name,age);
102     }
103     public void speak(){
104         System.out.println("要学习英语");
105     }
106     public void teacher(){
107         System.out.println("要教导队员发球和接球的技巧");
108     }
109     public void eat(){
110         System.out.println("跟着队员吃清淡的饭菜");
111     }
112 }
113
114 //具体篮球队员类
115 class basketballplayer extends player{
116     public basketballplayer(){}
117     public basketballplayer(String name,int age){
118         super(name,age);
119     }
120     public void eat(){
121         System.out.println("要吃油腻的饭菜");
122     }
123     public void student(){
124         System.out.println("要练习运球和投篮技巧");
125     }
126 }
127 //具体篮球教练类
128 class basketballcoach extends coach{
129     public basketballcoach(){}
130     public basketballcoach(String name,int age){
131         super(name,age);
132     }
133     public void eat(){
134         System.out.println("要跟着队员,吃油腻的饭菜");
135     }
136     public void teacher(){
137         System.out.println("要教导队员运球和投篮技巧");
138     }
139 }
140
141 class InterfaceTest1 {
142     public static void main(String[] args) {
143         //测试运动员(乒乓球运动员和篮球运动员)
144         //乒乓球运动员
145         pingpangplayer p3 = new pingpangplayer("马龙",26);
146         p3.eat();
147         p3.sleep();
148         p3.student();
149         p3.speak();
150
151         basketballplayer b2p = new basketballplayer("姚明",38);
152         b2p.eat();
153         b2p.sleep();
154         b2p.student();
155
156         System.out.println("------------");
157         //测试教练类
158
159         pingpangcoach p2c = new pingpangcoach("教练p",41);
160         p2c.eat();
161         p2c.sleep();
162         p2c.teacher();
163         p2c.speak();
164
165         basketballcoach b2c = new basketballcoach("教练b",38);
166         b2c.eat();
167         b2c.sleep();
168         b2c.teacher();
169
170     }
171
172 }

转载于:https://www.cnblogs.com/LZL-student/p/5860918.html

java9-1.类,抽象类,接口的综合小练习相关推荐

  1. 10-01 Java 类,抽象类,接口的综合小练习--运动员和教练

    运动员和教练的案例分析 运动运和教练的案例 代码实现 /*教练和运动员案例乒乓球运动员和篮球运动员.乒乓球教练和篮球教练.为了出国交流,跟乒乓球相关的人员都需要学习英语.请用所学知识:分析,这个案例中 ...

  2. java基础-类-抽象类-接口(自学笔记)

    一.类 class 定义:具有相同属性(特性)和方法(行为)的一类事物 的抽象的总称 例如:人类,动物,车,屌丝类.是一种类别,世界上所有的事物都可以分类,在计算机中java都能进行对应和体现 类的三 ...

  3. java 类 抽象类 接口_Java抽象类和接口

    抽象类和接口 一.抽象类和抽象方法 对于抽象类,首先需要介绍抽象方法,而抽象类因抽象方法的存在而存在 1.抽象方法 (1)必要性: 有些父类方法不确定如何写方法体,但是对于继承它的子类又必须用到这个方 ...

  4. 关于类和接口的一些小笔记

    如果一个类实现了多个接口,如果将这个类实例化,那么这些接口之间可以互相调用的. 转载于:https://www.cnblogs.com/pilihaotian/p/4868609.html

  5. week_03_常用类以及接口

    序 /* 这周重点内容:ststic关键字;继承(extends);this和super的使用以及区别;final关键字;多态;抽象类的关 键字(abstract);接口(interface,impl ...

  6. Java11-day02【多态(成员访问、多态转型、内存图解)、抽象类(成员特点)、接口(成员特点)、类和接口的关系、抽象类和接口的区别、综合案例】

    视频+资料(工程源码.笔记)[链接:https://pan.baidu.com/s/1MdFNUADVSFf-lVw3SJRvtg   提取码:zjxs] Java基础--学习笔记(零起点打开java ...

  7. day10:抽象方法、抽象类、接口、类与接口、接口与接口、内部类

    一 回顾 1.继承中访问成员方法的特点:重名:优先访问子类 不重名:优先方法子类 没有则向上查找方法重载: 同一一个类 方法名相同 参数不同 与返回值类型无关方法重写: 在继承中 方法名相同 参数相同 ...

  8. IEnumeratorTItem和IEnumerator Java 抽象类和普通类、接口的区别——看完你就顿悟了...

    IEnumerable 其原型至少可以说有15年历史,或者更长,它是通过 IEnumerator 来定义的,而后者中使用装箱的 object 方式来定义,也就是弱类型的.弱类型不但会有性能问题,最主要 ...

  9. 抽象类和接口设计_如何设计类和接口

    抽象类和接口设计 本文是我们名为" 高级Java "的学院课程的一部分. 本课程旨在帮助您最有效地使用Java. 它讨论了高级主题,包括对象创建,并发,序列化,反射等. 它将指导您 ...

最新文章

  1. 2022-2028年中国白手套行业市场全景调查及发展前景分析报告
  2. 卧槽!Python学习神器!!!
  3. Nginx + CGI/FastCGI + C/Cpp
  4. Maven下载+Maven环境变量配置+IntelliJ IDEA配置Maven(详细教程) ,收藏起来吧
  5. 【Matlab】函数输入个数不定怎么办?
  6. C++进程数量的限制
  7. python邮件添加附件_如何向电子邮件python添加多个附件
  8. Python递归调用
  9. ASP.NET 操作Cookie详解 增加,修改,删除
  10. JavaScript数组快速入门
  11. Windows中使用Docker安装ClickHouse
  12. 【洛谷P1774】最接近神的人_NOI导刊2010提高(02)(模版题---求逆序对数目+离散化---树状数组/权值线段树)
  13. 01-2制作U盘启动盘--装机助理工具
  14. wincc嵌入式excel报表 该报表系统能够读取WINCC中历史归档数据,产生出EXCEL报表文件,同时在画面中EXCEL控件实时显示
  15. CSS 只选中第一个和最后一个元素
  16. 计算机网络cpu规格,国产CPU路漫漫 历数龙芯各型号技术指标
  17. 计算机出现蓝屏怎么解决,电脑开机出现蓝屏怎么解决?
  18. 用程序来模拟Alt+PrtSc的键盘事件,实现截屏功能
  19. ajax的同步与异步
  20. 面了20家,原来大厂面试的套路是……

热门文章

  1. 【牛客 - 696C】小w的禁忌与小G的长诗(dp 或 推公式容斥)
  2. 【牛客 - 373B】666RPG(线性计数dp)
  3. python批量打印word_Python使用扩展库pywin32实现批量文档打印实例
  4. java调用lingo_使用Lingo增强JMS
  5. html 报表插件,轻量级图形报表插件JSCharts
  6. java关闭文本_如何更优雅的关闭java文本、网络等资源
  7. php e notice,PHP函数之error_reporting(E_ALL ^ E_NOTICE)详细说明
  8. joptionpane java_Java JOptionPane
  9. 如何通过属性给实体赋值
  10. Matplotlib——绘制图表