/*
教练和运动员案例(学生分析然后讲解)
乒乓球运动员和篮球运动员。
乒乓球教练和篮球教练。
为了出国交流,跟乒乓球相关的人员都需要学习英语。
请用所学知识:
分析,这个案例中有哪些抽象类,哪些接口,哪些具体类。
分析:
1、共同的属性:姓名 年龄
共同的方法:吃饭,睡觉
其中吃饭的内容两者不同,所以用抽象方法
不同的方法:队员练习,教练教导,分别写入队员类和教练类
2、接口:学习英语
3、抽象类:人类; 运动员类、教练类 这两个继承人类
具体类:乒乓球队员类、教练类和篮球队员类、教练类 ; 分别继承运动员类或教练类,其中乒乓球有关的扩展学习英语接口
*/ //定义学英语接口
interface English{
public abstract void speak();
} //定义抽象人类
abstract class person{
//成员变量
private String name;
private int age; //无参构造方法
public person(){} //有参构造方法
public person(String name,int age){
this.name = name;
this.age = age;
} 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 abstract void eat();
//成员方法
public void sleep(){
System.out.println("睡觉去");
}
} //抽象运动员类
abstract class player extends person{
//无参构造方法
public player(){}
//有参构造方法
public player(String name,int age){
super(name,age);
}
//特有的方法,练习,不得不做的,用抽象
public abstract void student();
} //抽象教练类
abstract class coach extends person{
public coach(){}
public coach(String name,int age){
super(name,age);
}
public abstract void teacher();
} //具体乒乓球运动类
class pingpangplayer extends player implements English{
public pingpangplayer(){}
public pingpangplayer(String name,int age){
super(name,age);
}
public void speak() {
System.out.println("要学习英语");
}
public void student() {
System.out.println("要练习发球和接球的技巧");
}
public void eat() {
System.out.println("吃清淡的饭菜");
}
} //具体乒乓球教练类
class pingpangcoach extends coach implements English{
public pingpangcoach(){}
public pingpangcoach(String name,int age){
super(name,age);
}
public void speak(){
System.out.println("要学习英语");
}
public void teacher(){
System.out.println("要教导队员发球和接球的技巧");
}
public void eat(){
System.out.println("跟着队员吃清淡的饭菜");
}
} //具体篮球队员类
class basketballplayer extends player{
public basketballplayer(){}
public basketballplayer(String name,int age){
super(name,age);
}
public void eat(){
System.out.println("要吃油腻的饭菜");
}
public void student(){
System.out.println("要练习运球和投篮技巧");
}
}
//具体篮球教练类
class basketballcoach extends coach{
public basketballcoach(){}
public basketballcoach(String name,int age){
super(name,age);
}
public void eat(){
System.out.println("要跟着队员,吃油腻的饭菜");
}
public void teacher(){
System.out.println("要教导队员运球和投篮技巧");
}
} class InterfaceTest1 {
public static void main(String[] args) {
//测试运动员(乒乓球运动员和篮球运动员)
//乒乓球运动员
pingpangplayer p3 = new pingpangplayer("马龙",26);
p3.eat();
p3.sleep();
p3.student();
p3.speak(); basketballplayer b2p = new basketballplayer("姚明",38);
b2p.eat();
b2p.sleep();
b2p.student(); System.out.println("------------");
//测试教练类 pingpangcoach p2c = new pingpangcoach("教练p",41);
p2c.eat();
p2c.sleep();
p2c.teacher();
p2c.speak(); basketballcoach b2c = new basketballcoach("教练b",38);
b2c.eat();
b2c.sleep();
b2c.teacher(); } }

java9-1.类,抽象类,接口的综合小练习的更多相关文章

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

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

  2. c#中接口、抽象类、继承综合小练习

    namespace Test { class Program { static void Main(string[] args) { //作业:橡皮rubber鸭子.木wood鸭子.真实的鸭子real ...

  3. python笔记5 接口类抽象类 封装 反射 设计模式 模块 :random随机数 josn shelve持久化存储

    接口类抽象类 接口类:接口类就是制定一个规则,让其他人按照我的规则去写程序. #!/usr/bin/env python from abc import ABCMeta,abstractmethod ...

  4. java类,接口浅谈

    一般类,抽象类,接口的使用场景: 类;共同的特征和行为的抽取和封装 接口:标准,规范(功能的扩展)         需要对某个类进行功能的扩展,就让某个类实现这个接口,抽取出来称为接口   内部类: ...

  5. IEnumerator<TItem>和IEnumerator Java 抽象类和普通类、接口的区别——看完你就顿悟了

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

  6. 速战速决 (4) - PHP: 类基础, 抽象类, 接口, trait

    [源码下载] 速战速决 (4) - PHP: 类基础, 抽象类, 接口, trait 作者:webabcd 介绍速战速决 之 PHP 类基础 抽象类 接口 trait 示例1.类的相关知识点 1(基础 ...

  7. day27 多态 多继承 接口类 抽象类

    简单来说:多态就是指一个相同的方法名在不同的对象调用的时候实现一样或者不一样的方法实例1: 动物类有个方法 "嚎叫" 狗类也有个方法 "嚎叫" 猫类继承了动物类 ...

  8. python 全栈开发,Day21(抽象类,接口类,多态,鸭子类型)

    一.昨日复习 派生方法和派生属性 super 只有在子父类拥有同名方法的时候, 想使用子类的对象调用父类的方法时,才使用super super在类内 : super().方法名(arg1,..) 指名 ...

  9. python面向对象 : 抽象类(接口类),多态,封装(私有制封装)

    一. 抽象类(接口类) 与java一样, python也有抽象类的概念但是同样需要借助模块实现,抽象类是一个特殊的类, 它的特殊之处在于只能被继承, 不能被实例化. 从设计角度去看, 如果类是从现实对 ...

随机推荐

  1. [ASP.NET MVC] Model Binding With NameValueCollectionValueProvider

    [ASP.NET MVC] Model Binding With NameValueCollectionValueProvider 范例下载 范例程序代码:点此下载 问题情景 一般Web网站,都是以H ...

  2. Android studio 快捷添加构造方法以及set与get

    第一种方式 快捷键: Alt + lnsert (笔记本可能没有后面的按键) 按快捷键会出现下面这个页面: 第二种方式:点开后是跳出上面那个选择框

  3. 【高级功能】使用canvas元素(第二部分)

    本文将继续介绍canvas的功能,展示如何绘制更复杂的图形(包括圆弧和曲线),如何使用剪裁区域来限制操作以及如何绘制文本.还是介绍可以应用在画布上的特效和变换,包括阴影.透明度.旋转和坐标重映射. 1 ...

  4. Form.action传值问题

    通过浏览器地址栏输入url并通过?传递参数请求资源时,?后面的参数叫做 "查询字符串",会触发后台Servlet的doGet(),因为通过浏览器地址栏直接访问的方式是GET方式. ...

  5. SharePoint 2013 创建web应用程序报错"This page can’t be displayed"

    错误描述 This page can’t be displayed •Make sure the web address http://centeradmin is correct. •Look fo ...

  6. MySQL全文索引应用简明教程

    本文从以下几个方面介绍下MySQL全文索引的基础知识: MySQL全文索引的几个注意事项 全文索引的语法 几种搜索类型的简介 几种搜索类型的实例 全文索引的几个注意事项 搜索必须在类型为fulltex ...

  7. cornerstone 使用

    svn 使用方法 Check Out 下载的文件会与源文件产生一个working copy与源文件关联

  8. iOS闹钟实现

    UILocalNotification *notification=[[UILocalNotification alloc] init];         if (notification!=nil) ...

  9. iOS之 随笔-静态库创建Xcode7

    不多说直接上图 然后你就可以找到你的.a文件了还有你的头文件 在终端可以检查你所编译的静态库都支持什么架构(armv7,armv7s ,arm64)用这个命令 lipo -info 编译时候要看你Xc ...

  10. 忙碌的Nova君 (活动安排问题、贪心算法)

    题目描述 理论上,Nova君是个大闲人,但每天还是有一大堆事要干,大作业啦,创新杯啦,游戏啦,出题坑人啦,balabala......然而精力有限,Nova君同一时间只能做一件事,并不能一心二用.假设 ...