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也有抽象类的概念但是同样需要借助模块实现,抽象类是一个特殊的类, 它的特殊之处在于只能被继承, 不能被实例化. 从设计角度去看, 如果类是从现实对 ...
随机推荐
- css超出2行部分省略号...
今天做东西,遇到了这个问题,百度后总结得到了这个结果. 首先,要知道css的三条属性. overflow:hidden; //超出的文本隐藏 text-overflow:ellipsis; //溢出用 ...
- RHEL7文件管理
Linux系统目录结构 主要目录说明 目录 说明 / 通常称为根分区所有的文件和目录的起始点只有root用户对此目录拥有写权限 /home 普通用户的宿主目录 /root 超级用户的宿主目录 /dev ...
- MySQL到MsSQL的迁移工具——SSMA
SQL Server迁移助手(SSMA)团队开发了针对MySQL的迁移助手Microsoft SQL Server Migration Assistant 2008 for MySQL.微软同时发布了 ...
- Microsoft Dynamics CRM 2013 --针对特定实体,取消保存功能(包含自动保存)
AutoSave 是 Microsoft Dynamics CRM 2013 一个新特性. 但AutoSave的有效范围是[所有实体],不允许针对特定某一实体进行设置. 所以,若想针对特定实体进行设置 ...
- Core Data的简单用法
#import "ViewController.h" // 第一步:引入头文件AppDelegate #import "AppDelegate.h" #impo ...
- jhljx跑跑跑(找规律)
题目来源:https://biancheng.love/contest/41/problem/D/index jhljx跑跑跑 题目描述 数学不好的jhljx又在和别人打牌,他们一共m人每人n张牌,牌 ...
- PHP实例学习之————MVC架构模式分析与设计
写博客,不容易,你们的评论和转载,就是我的动力, 但请注明出处,隔壁老王的开发园:http://www.cnblogs.com/titibili 2016年1月31日 18:53 作者:Ygirl ...
- 用luke看索引
Luke是一个用于Lucene搜索引擎的第三方工具,它可以访问现有Lucene的索引,并允许您显示和修改.可以看每篇文档建立了哪些索引,验证有没有成功建立了索引.不然建立了,不能确定有没有成功. 可以 ...
- java使用this关键字调用本类重载构造器
在构造器中可以调用本类的其他重载构造器,不能使用构造器名称来调用另一个构造器,而是应该使用Java特定的this(-.)来调用. this(-.)方法必须出现在构造器中的第一行,用来调用其他重载构造器 ...
- "ORA-12154: TNS:could not resolve the connect identifier specified"的解决办法
添加环境变量解决: 变量名:TNS_ADMIN 变量值:D:\Ocl\product\11.2.0\dbhome_1\NETWORK\ADMIN tnsnames.ora所在的路径