JAVA中implements实现多接口

这里有一个游戏,人猿泰山。 主角是一个单独的类,这里我们主要用怪物说明接口的用法: 怪物有很多种, 按地域分:有的在天上飞,有的在地上跑,有的在水里游 按攻击方式分:有的能近距离物理攻击,有的能远距离射击

假设游戏里需要这样的几种怪——

野狗:地上移动,近距离攻击

黑熊:地上移动,近/远距离攻击

秃鹫:地上/天上移动,远距离攻击

食人鱼:水中移动,近距离攻击

鳄鱼:地上/水中移动,近距离攻击

显然,如果我们将每一种怪物定义为一个类,那就不是面向对象的程序开发了,我们应当使用接口:

interface OnEarth{//陆地接口

int earthSpeed;//陆地移动速度

void earthMove();//陆地移动方法

}

interface OnWater{//水中接口

int waterSpeed;//水中移动速度

void waterMove();//水中移动方法

}

interface OnAir{//空中接口

int airSpeed;//水中移动速度

void airMove();//水中移动方法

}

interface NearAttack{//近距离攻击接口

int nearAttackPower;//近距离攻击力

void nearAttack();//近距离攻击方法

}

interface FarAttack{//远距离攻击接口

int farAttackPower;//远距离攻击力

void farAttack();//远距离攻击方法

}

这样一来,根据需求,我们可以选择性的继承接口:

class Tyke implements OnEarth, NearAttack{//野狗类

void earthMove(){//实现继承的方法1

}

void nearAttack(){//实现继承的方法2

}

}

class BlackBear implements OnEarth, NearAttack, FarAttack{//黑熊类

void earthMove(){//实现继承的方法1

}

void nearAttack(){//实现继承的方法2

}

void farAttack(){//实现继承的方法3

}

}

class Vulture implements OnEarth, OnAir, FarAttack{//秃鹫类

void earthMove(){//实现继承的方法1

}

void airMove(){//实现继承的方法2

}

void farAttack(){//实现继承的方法3

}

}

class ManeatFish implements OnWater, NearAttack{//食人鱼类

void waterMove(){//实现继承的方法1

}

void nearAttack(){//实现继承的方法2

}

}

class Crocodile implements OnEarth, OnWater, NearAttack{//鳄鱼类

void earthMove(){//实现继承的方法1

}

void waterMove(){//实现继承的方法2

}

void nearAttack(){//实现继承的方法3

}

}

在实现接口方法的同时,也拥有了接口中定义的成员变量,这样就构成了一个有机的整体,使整个程序既体现了类的多样性,又不失结构组合的灵活性,且需要在某个特性增加其他功能,只要修改接口就可以了,其继承的类自动修改。

java implements 多个接口_JAVA中implements实现多接口相关推荐

  1. java中implements是什么意思_Java中implements和extends的区别

    看到java中很多类有使用implements和extends,那么这两种用法有哪些区别呢,今天我们来分析一下. 简单说:1.extends是继承父类,只要那个类不是声明为final或者那个类定义为a ...

  2. java中implements是什么意思_java中implements和Interface的不同是什么?

    implements是一个类实现一个接口用的关键字,是用来实现接口中定义的抽象方法. 比如:people是一个接口,里面有say这个方法. public interface people(){ pub ...

  3. java中抽象类 接口_java中的抽象类与接口

    1.抽象类的定义 在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类. 2.简单实例 ...

  4. java中如何定义接口_java中如何定义一个接口

    使用interface来定义一个接口.接口定义同类的定义类似,也是分为接口的声明和接口体,其中接口体由常量定义和方法定义两部分组成.定义接口的基本格式如下:[修饰符] interface 接口名 [e ...

  5. java如何调c 的接口_JAVA中调用C语言接口

    写一个Java类,在这个类中包含了需要调用的本地方法的描述. //WinMsgBox.java package edu.netcom.jni; public class WinMsgBox  { st ...

  6. 软件外部接口和内部接口_java中的内部类内部接口详解

    简介 一般来说,我们创建类和接口的时候都是一个类一个文件,一个接口一个文件,但有时候为了方便或者某些特殊的原因,java并不介意在一个文件中写多个类和多个接口,这就有了我们今天要讲的内部类和内部接口. ...

  7. java 多态性 接口_Java中的多态性和接口

    我是 java的新手,我正在学习接口和多态.我想知道最好的方法是什么. 假设我有一个简单的课程. class Object{ // Renders the object to screen publi ...

  8. java获取get请求返回_Java中处理调用第三方接口(post/get),该如何处理,返回的数据如何处理...

    条件:1.请求URL:http://ip:port/yypt/*.jsonRequest 2.接口采用http post协议.Content-Type为application/json 调用流程: 第 ...

  9. java调取对方接口_java中如何调用对方接口

    调用对方http接口步骤:URL url = new URL(path); 1.打开和url之间的连接HttpURLConnection conn = (HttpURLConnection) url. ...

最新文章

  1. RDKit:化合物相似性搜索
  2. jpa单向多对一关联映射
  3. Sedgwick Museum of Earth Sciences
  4. [转载] JVM(一):JVM体系结构详解
  5. linux基础命令怎么记,linux基础命令--笔记(示例代码)
  6. QQ 可注销版本上线;拼多多成立技术顾问委员会;董明珠:建议偷手机判 10 年 | 极客头条...
  7. linux下搭建博客day4注册git账号
  8. liunx安装jdk,实测有效
  9. python两个函数中传递变量_如何在Python中向函数传递大量变量?
  10. 模拟Post登陆带验证码的网站
  11. 树莓派搭建VSFTP记录---自用简记
  12. jdk api 1.8中文手册
  13. Android自带的抓包工具tcpdump
  14. 你好旧时光,斗罗大陆,红楼梦词云词频分析(动词形容词名词)
  15. 树莓派3代ROS系统镜像文件下载链接
  16. num find matlab,matlab中find函数的使用说明
  17. xampp 403 禁止访问 问题解决
  18. windows服务器迁到_Windows服务器迁移工具使用攻略
  19. 浅谈 ext2 文件系统的特点、优缺点以及使用场景
  20. iOS 8 Auto Layout界面自动布局约束

热门文章

  1. html自定义横纵向滚动条,html的滚动条样式设置
  2. php中的lt;?= ?gt;替换lt;?php echo ?gt;
  3. 报错 DOTWEEN ► Max Tweens reached: capacity has automatically been increased from 200/50 to 500/50.
  4. 24个终极数据科学项目(免费获取资源)
  5. 一个非常好用的播放器 老外的哦
  6. webui入门魔导书-自用
  7. C语言基本语法--指针篇(有了它,再也不用担心指针了)
  8. 解决安装CST时不能启动license服务,显示“could not start service ‘CST License Manager‘ service“的问题。
  9. java 生成静态页面——Freemarker实例教程
  10. 初学C语言的感悟——书山有路勤为径。