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

  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 }
时间: 2024-10-14 18:16:02

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

普通类 抽象类 接口

首先得搞懂什么是抽象类:一.概念:    在面向对象的概念中,我们知道所有的对象都是通过类来描绘的,但是反过来却不是这样.并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类.    比如:如果我们进行一个图形编辑软件的开发,就会发现问题领域存在着圆.三角形这样一些具体概念.它们是不同的,但是它们又都属于形状这样一个概念,形状这个概念在问题领域是不存在的,它就是一个抽象概念.正是因为抽象的概念在问题领域没有对应的具体概念,所以用以表征抽象概念的

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

1 namespace Test 2 { 3 class Program 4 { 5 static void Main(string[] args) 6 { 7 //作业:橡皮rubber鸭子.木wood鸭子.真实的鸭子realduck. 8 //三个鸭子都会游泳,而橡皮鸭子和真实的鸭子都会叫, 9 //只是叫声不一样,橡皮鸭子"唧唧"叫,真实地鸭子"嘎嘎"叫,木鸭子不会叫. 10 11 Duck dk = new RealDuck(); 12 dk.Swim();

10_面向对象(类,抽象类,接口的综合练习、形参和返回值、包的概述和讲解、修饰符、内部类)

1:形式参数和返回值的问题(理解)    (1)形式参数:        类名:需要该类的对象        抽象类名:需要该类的子类对象        接口名:需要该接口的实现类对象    (2)返回值类型:        类名:返回的是该类的对象        抽象类名:返回的是该类的子类对象        接口名:返回的是该接口的实现类的对象    (3)链式编程        对象.方法1().方法2().......方法n();                这种用法:其实在方法1()

从人类社会的角度看OO社会中的类、接口、抽象类

引言 在OO的工作中,我们一定会涉及到类,抽象类和接口.那么类和抽象类以及接口到底扮演的什么角色? 本文主要是从人类社会的角度阐述类与抽象类以及接口的“社会”关系,从而让我们抛弃书上的那些死记硬背的概念,快速理解他们的区别与联系? 如果大家觉得还有必要把这块更新的更好,还请多多反馈. 如果觉的对您有用还请点击 “推荐”下,我会持续更新更多新的内容. 古老的传说 相传盘古开天劈地后,女娲一天在黄河边梳头时,突发奇想以泥土仿照自己抟土造人,创造并构建人类社会.后来又替人类立下了婚姻制度,经过一代又一

小知识(五):抽象类&接口

抽象类abstract: 抽象类和抽象方法可以用abstract关键字进行标识.就是没有完全定义的类或方法.所以不能直接实例化操作. 就因为他没完全定义所以不能用sealed关键字进行密封. 抽象方法不含程序主体: public abstract class Student { //抽象方法,不含程序体 public abstract void GetStudentID(); //子类可访问字段 prodected int i; //定义i的属性 public int I { get { ret

python开发面向对象基础:接口类&抽象类&多态&多继承

一,接口类 继承有两种用途: 一:继承基类的方法,并且做出自己的改变或者扩展(代码重用) 二:声明某个子类兼容于某基类,定义一个接口类Interface,接口类中定义了一些接口名(就是函数名)且并未实现接口的功能,子类继承接口类,并且实现接口中的功能 开发中容易出现的问题 1 class Alipay: 2 ''' 3 支付宝支付 4 ''' 5 def pay(self,money): 6 print('支付宝支付了%s元'%money) 7 8 class Applepay: 9 ''' 1

虚函数/纯虚函数/抽象类/接口/虚基类

1.多态 在面向对象语言中,接口的多种不同实现方式即为多态.多态是指,用父类的指针指向子类的实例(对象),然后通过父类的指针调用实际子类的成员函数. 在Java中,没有指针,就直接用父类实例化子类对象 多态性就是允许将子类类型的指针赋值给父类类型的指针,多态是通过虚函数实现的,多态可以让父类的指针有“多种形态”,这是一种泛型技术. 所谓泛型技术,就是试图使用不变的代码来实现可变的算法 2.虚函数 在基类的类定义中,定义虚函数的一般形式: Virtual 函数返回值类型 虚函数名(形参表){ 函数

19 抽象类 接口类 封装. 多态

主要内容: 1.  抽象类(接口类): 制定一个规范  : from abc import ABCMeta,abstractmethod class Payment(metaclass=ABCMeta): @abstractmethod def pay(self):pass class Alipay(Payment): def __init__(self,money): self.money = money def pay(self): print('使用支付宝支付了%s' % self.mon

python 2018.7.25 接口类,抽象类

python 没有接口这个概念 接口类,抽象类: 制定一个规范. from abc import ABCMeta,abstractmethodclass Payment(metaclass=ABCMeta): # 抽象类(接口类): @abstractmethod def pay(self): pass # 制定了一个规范 class Alipay(Payment): def __init__(self,money): self.money = money def pay(self): prin