java9-1.类,抽象类,接口的综合小练习
/*
教练和运动员案例(学生分析然后讲解)
乒乓球运动员和篮球运动员。
乒乓球教练和篮球教练。
为了出国交流,跟乒乓球相关的人员都需要学习英语。
请用所学知识:
分析,这个案例中有哪些抽象类,哪些接口,哪些具体类。
分析:
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.类,抽象类,接口的综合小练习的更多相关文章
- 10-01 Java 类,抽象类,接口的综合小练习--运动员和教练
运动员和教练的案例分析 运动运和教练的案例 代码实现 /* 教练和运动员案例 乒乓球运动员和篮球运动员. 乒乓球教练和篮球教练. 为了出国交流,跟乒乓球相关的人员都需要学习英语. 请用所学知识: 分析 ...
- c#中接口、抽象类、继承综合小练习
namespace Test { class Program { static void Main(string[] args) { //作业:橡皮rubber鸭子.木wood鸭子.真实的鸭子real ...
- python笔记5 接口类抽象类 封装 反射 设计模式 模块 :random随机数 josn shelve持久化存储
接口类抽象类 接口类:接口类就是制定一个规则,让其他人按照我的规则去写程序. #!/usr/bin/env python from abc import ABCMeta,abstractmethod ...
- java类,接口浅谈
一般类,抽象类,接口的使用场景: 类;共同的特征和行为的抽取和封装 接口:标准,规范(功能的扩展) 需要对某个类进行功能的扩展,就让某个类实现这个接口,抽取出来称为接口 内部类: ...
- IEnumerator<TItem>和IEnumerator Java 抽象类和普通类、接口的区别——看完你就顿悟了
IEnumerable 其原型至少可以说有15年历史,或者更长,它是通过 IEnumerator 来定义的,而后者中使用装箱的 object 方式来定义,也就是弱类型的.弱类型不但会有性能问题,最主要 ...
- 速战速决 (4) - PHP: 类基础, 抽象类, 接口, trait
[源码下载] 速战速决 (4) - PHP: 类基础, 抽象类, 接口, trait 作者:webabcd 介绍速战速决 之 PHP 类基础 抽象类 接口 trait 示例1.类的相关知识点 1(基础 ...
- day27 多态 多继承 接口类 抽象类
简单来说:多态就是指一个相同的方法名在不同的对象调用的时候实现一样或者不一样的方法实例1: 动物类有个方法 "嚎叫" 狗类也有个方法 "嚎叫" 猫类继承了动物类 ...
- python 全栈开发,Day21(抽象类,接口类,多态,鸭子类型)
一.昨日复习 派生方法和派生属性 super 只有在子父类拥有同名方法的时候, 想使用子类的对象调用父类的方法时,才使用super super在类内 : super().方法名(arg1,..) 指名 ...
- python面向对象 : 抽象类(接口类),多态,封装(私有制封装)
一. 抽象类(接口类) 与java一样, python也有抽象类的概念但是同样需要借助模块实现,抽象类是一个特殊的类, 它的特殊之处在于只能被继承, 不能被实例化. 从设计角度去看, 如果类是从现实对 ...
随机推荐
- 使用 Canvas 和 JavaScript 创建逼真的下雨效果
HTML5 规范引进了很多新特性,其中最令人期待的之一就是 Canvas 元素,HTML5 Canvas 提供了通过 JavaScript 绘制图形的方法,非常强大.这里向大家展示一个使用 Canva ...
- abap number range
如有转载请注明出处:http://blog.csdn.net/donkey2004112103/archive/2009/04/13/4070996.aspx 1.sap numbe range在标准 ...
- org.apache.http.conn.HttpHostConnectException: Connection to http://localhost refused in android
给Manifest加网络权限<uses-permission android:name="android.permission.INTERNET"/>
- 系统自带的NSJSONSerialization解析json文件
#import "ViewController.h" #import "Student.h" #import "GDataXMLNode.h" ...
- IOS SDWebImage实现原理详解
在之前我写过SDWebImage的使用方法,主要是用与获取网络图片,没有看过的朋友可以看看. 这篇文章将主要介绍SDWebImage的实现原理,主要针对于获取网络图片的原理,如果没有第三方我们该怎么去 ...
- PAT 01-1
#include <stdio.h> int main() { int i; int k; ]; scanf("%d", &k); ; i < k; i+ ...
- Windows 编 程中的字符串
(1)在win32编程中,如何使用string类型 #include <string> using namespace std; LPTSTR lpCmdLine = L" ...
- fragment 切换
1.Fragment的添加方式 FragmentTransaction ft = getFragmentManager().beginTransaction(); ft.hide ft.show ft ...
- I/O多路复用——select函数与poll函数
1 区别 同:(1)机制类似,本质上没有多大差别,管理多个描述符也是进行轮询,根据描述符的状态进行处理.(2)包含大量文件描述符的数组被整体复制于用户态和内核的地址空间之间,而不论这些文件描述符是否就 ...
- C++中的多态与虚函数的内部实现
1.什么是多态 多态性可以简单概括为“一个接口,多种行为”. 也就是说,向不同的对象发送同一个消息, 不同的对象在接收时会产生不同的行为(即方法).也就是说,每个对象可 ...