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
}
}

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

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/hgch95/archive/2009/09/15/4556119.aspx

JAVA中implements实现多接口相关推荐

  1. java implements 多个接口_JAVA中implements实现多接口

    JAVA中implements实现多接口 这里有一个游戏,人猿泰山. 主角是一个单独的类,这里我们主要用怪物说明接口的用法: 怪物有很多种, 按地域分:有的在天上飞,有的在地上跑,有的在水里游 按攻击 ...

  2. 深入理解Java中的抽象类和接口

    对于面向对象编程来说,抽象是它的一大特征之一.在Java中,可以通过两种形式来体现OOP的抽象:接口和抽象类.这两者有太多相似的地方,又有太多不同的地方.很多人在初学的时候会以为它们可以随意互换使用, ...

  3. java 中的2个接口 Comparable和Comparator

    像Integer.String这些类型的数据都是已经实现Comparable接口的,所以对这些类型可以直接通过Arrays.sort(...)和Collections.sort(...)方法进行排序. ...

  4. Java中Comparable和Comparator接口区别分析

    本文要来详细分析一下Java中Comparable和Comparator接口的区别,两者都有比较的功能,那么究竟有什么区别呢,感兴趣的Java开发者继续看下去吧. Comparable 简介 Comp ...

  5. java comparator相等_详解Java中Comparable和Comparator接口的区别

    详解Java中Comparable和Comparator接口的区别 发布于 2020-7-20| 复制链接 摘记: 详解Java中Comparable和Comparator接口的区别本文要来详细分析一 ...

  6. Java 中的抽象类和接口

    Java 中的抽象类和接口 1.参考资料 深入理解Java的接口和抽象类 Java抽象类与接口的区别 2.前言 有一次旁听面试的时候,听到面试官问了一句:既然 JDK8 中接口有了默认方法实现,那接口 ...

  7. java饲养员喂动物_做一个饲养员给动物喂食物的例子体现JAVA中的面向对象思想,接口(抽象类)的用处...

    做一个饲养员给动物喂食物的例子体现JAVA中的面向对象思想,接口(抽象类)的用处 interface Animal{ //动物的接口    public void eat(Food food); // ...

  8. JAVA中的抽象类与接口

    JAVA中的抽象类与接口 接口和抽象类的区别: 接口和抽象类是支持抽象类定义的两种机制. 接口是公开的,不能有私有的方法或变量,接口中的所有方法都没有方法体,通过关键字interface实现. 抽象类 ...

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

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

最新文章

  1. c语言程序的基本结构(学习笔记1)
  2. Elasticsearch-PHP学习
  3. 汇编语言--单步中断
  4. 大道至简 23种模式一点就通
  5. python代码编辑器下载_编程猫Python编辑器
  6. 强化学习总结(1-2)——model-base(policy evaluation;policy control)
  7. 2019 amazingdotnet 公众号回顾
  8. 思维导图系列之Java多线程知识梳理
  9. Serverless 实战:3 分钟实现文本敏感词过滤
  10. YT88 USB 加密狗 使用方法(一)加壳
  11. 百度网盘客户端(java)版本
  12. python实现 stft_python scipy signal.stft用法及代码示例
  13. 产品静电ESD测试标准
  14. 三角形的缩放动画,不会做的看过来!
  15. 萌新向Python数据分析及数据挖掘 第二章 pandas 第一节 pandas使用基础QA 1-15
  16. matlab fpga 移植,使用MATLAB,Simulink以及基于模型的设计实现把电机控制算法移植到Zynq平台...
  17. 明瞳智控四月再升级,视图终端上云更便捷
  18. JAVA中的多线程与运动仿真(1)——用JAVA来放一场烟花
  19. 开发微领地小蜜系统APP平台
  20. 考研英语核心词汇辨析(黑魔方系列2007版之一)

热门文章

  1. 程序员+本硕博——高效软件
  2. html ajax ashx,利用ashx实现AJAX的异步数据调用
  3. 世界光量子计算机芯片排名,上海交通大学实现世界最大规模光量子计算芯片
  4. css 实现内凹圆角
  5. 月入10k的软件测试学习之路
  6. 武汉Python程序员就业方向有哪些?薪资多少?
  7. Halcon自标定做畸变校正
  8. 软件开发(一)——软件开发的基础思考
  9. 非常简单的一个块设备驱动,simp_blkdev,2.6.31之后的变化
  10. 详解数据存储 网络数据传输 大端模式和小端模式