博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JAVA中implements实现多接口
阅读量:4167 次
发布时间:2019-05-26

本文共 1501 字,大约阅读时间需要 5 分钟。

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博客,转载请标明出处:

你可能感兴趣的文章
leetcode 98 Validate Binary Search Tree (python)
查看>>
python 三元条件判断的3种实现方法
查看>>
leetcode 97 Interleaving String(python)
查看>>
leetcode 92 Reverse Linked List II
查看>>
leetcode 78 Subsets
查看>>
leetcode 90 Subsets II
查看>>
leetcode 91 Decode Ways
查看>>
leetcode 89 Gray Code
查看>>
leetcode 88 Merge Sorted Array
查看>>
leetcode 87 Scramble String(递归+剪枝)
查看>>
win10系统下“python不是内部或外部命令”的解决方法
查看>>
Python的优缺点
查看>>
python中如何区分常量和变量
查看>>
python导入模块的4种方法
查看>>
linux more命令简单使用
查看>>
vi 编辑器超级简单且实用的命令
查看>>
python多行注释和跨行字符串
查看>>
linux终端输出彩色字体
查看>>
一个程序学会python的流程控制
查看>>
python中sys.exit() os._exit() exit() quit()的简单使用
查看>>