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也有抽象类的概念但是同样需要借助模块实现,抽象类是一个特殊的类, 它的特殊之处在于只能被继承, 不能被实例化. 从设计角度去看, 如果类是从现实对 ...
随机推荐
- DShow实现一个avi视频的播放(含有个人解释和注释)
此项目为win32下的控制台C++代码(别忘记配置DShow库) // movie_test.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" ...
- java微信开发(wechat4j)——设置响应微信参数
设置响应微信参数 wechat4j框架官方文档: https://github.com/sword-org/wechat4j/wiki
- docker入门指南(转载)
原文: http://bg.biedalian.com/2014/11/20/docker-start.html 关于 docker 今天云平台的同事提到, 现在的运维就是恶性循环, 因为大家都在申请 ...
- OC中NSDictionary和NSSet简单操作
/** * 字典 存放键值对类型的数据 存放数据是无序的 */ // 字典在控制台输出是用{}包括起来的 // NSDictionary 不可变字典 // 1.创建对象 // 初始化方法 NSDic ...
- 设计模式-01-MVC
概述 Model-View-Controller(MVC),即模型-视图-控制器. MVC将软件系统分成三大部分:Model,View,Controller,三个部分通过某种机制通信 M.V.C的职能 ...
- iOS之微博UI实例--拟物化设计(成功了90%)
*:first-child { margin-top: 0 !important; } body > *:last-child { margin-bottom: 0 !important; } ...
- 记录ConcurrentHashMap的锁分离技术
对比上图,HashTable实现锁的方式是锁整个hash表,而ConcurrentHashMap的实现方式是锁桶(简单理解就是将整个hash表想象成一大缸水,现在将这大缸里的水分到了几个水桶里,has ...
- 一个超复杂的间接递归——C语言初学者代码中的常见错误与瑕疵(6)
问题: 问题出处见 C语言初学者代码中的常见错误与瑕疵(5) . 在该文的最后,曾提到完成的代码还有进一步改进的余地.本文完成了这个改进.所以本文讨论的并不是初学者代码中的常见错误与瑕疵,而是对我自己 ...
- 《SQL Server企业级平台管理实践》读书笔记——SQL Server中数据文件空间使用与管理
1.表和索引存储结构 在SQL Server2005以前,一个表格是以一个B树或者一个堆(heap)存放的.每个B树或者堆,在sysindexes里面都有一条记录相对应.SQL Server2005以 ...
- 快速解决mysql Lost connection to MySQL server at 'reading initial communication packet及can't connect to mysql server on 'localhost'
今天在使用Navicat连一个远程mysql时,总是提示连接不成功,提示Lost connection to MySQL server at 'reading initial communicatio ...