java interface接口和多继承
这里有一个游戏,人猿泰山。
主角是一个单独的类,这里我们主要用怪物说明接口的用法:
怪物有很多种,
按地域分:有的在天上飞,有的在地上跑,有的在水里游
按攻击方式分:有的能近距离物理攻击,有的能远距离射击
假设游戏里需要这样的几种怪——
野狗:地上移动,近距离攻击
黑熊:地上移动,近/远距离攻击
秃鹫:地上/天上移动,远距离攻击
食人鱼:水中移动,近距离攻击
鳄鱼:地上/水中移动,近距离攻击
显然,如果我们将每一种怪物定义为一个类,那就不是面向对象的程序开发了,我们应当使用接口:
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 interface接口和多继承相关推荐
- Java中接口的多继承
我们知道Java的类只能继承一个类,但可以实现多个接口.但是你知道么?Java中的接口却可以继承多个接口.本文就来说一说Java中接口的多继承. 进入主题之前,先扩展一下.Java为什么只支持单继承呢 ...
- java private 接口_java接口中 定义 private 私有方法
在传统的Java编程中,被广为人知的一个知识点是:java Interface接口中不能定义private私有方法.只允许我们定义public访问权限的方法.抽象方法或静态方法.但是从Java 9 开 ...
- 《Java程序设计》实验报告——Java的接口与继承
浙江理工大学 <Java程序设计> 实验报告 20 19-20 20学年第 1学期 学 院 信息学院 班 级 计算机科学与技术18(3) 姓 名 申屠志刚 学 号 2 ...
- java移动接口发短信_天天都会写接口(interface),但它的用途和好处有多少人能说得清楚?
本文同步Java知音社区,专注于Java 作者:nvd11 http://blog.csdn.net/nvd11/article/details/41129935 一. 对接口的三个疑问 很多初学者都 ...
- java native 接口_Java本地接口--Java Native Interface (JNI)
一.方法介绍 java native方法是指本地方法,当在方法中调用一些不是由java语言写的代码或者在方法中用java语言直接操纵计算机硬件时要声明为native方法. java中,通过JNI(Ja ...
- java 接口可以多继承
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 接口是常量值和方法定义的集合.接口是一种特殊的抽象类. java类是单继承的.classB Exte ...
- Java常见面试知识点:继承、接口、多态、代码块
问题:Java常见面试知识点:继承.接口.多态.代码块 答案: 1.继承 继承中构造方法的访问特点 子类中所有的构造方法默认都会访问父类中无参的构造方法 为什么? • 子类在初始化的时候,有可能会使用 ...
- java接口中多继承的问题
java中支撑多继承吗? 支持->接口啊 为什么接口支持多继承呢?因为接口中没有方法体!即使可能两个接口中有一样的抽象方法,但是 只会调用子类中覆盖该同样抽象方法的具体方法!不会引起调用的歧义! ...
- Java 中接口 interface 实例介绍
接口(interface) 有时必须从几个类中派生出一个子类,继承它们所有的属性和方法.但是,Java不支持多重继承.有了接口,就可以得到多重继承的效果. 接口(interface)是抽象方法和常量值 ...
最新文章
- 深入浅出JVM的锁优化案例
- Eclipse 报java.lang.OutOfMemoryError: PermGen space
- rhel6.2 yum
- Qt 4.7.4 完美动态编译发布动态调试,以及静态编译发布
- five months plan
- 阿里云天池 Python训练营Task3: Python基础进阶:从函数到高级魔法方法 学习笔记
- 惹恼程序员的10件事
- CheckBox jsp+javaScript多项选择checkbox取值实现
- 通过ajax实现简单的数据交互(模板引擎)
- thinkphp 中英文语言包
- ff写法 图片_花体f怎么写
- win10安装VS2008失败解决方案
- ubuntu18.04 桌面不定时crash重置问题
- Anaconda从C盘移动到D盘
- 在html中什么标签可以显示小方块,css列表前的小方块
- 无法建立与远程计算机连接,解决“不能建立到远程计算机的连接,因此用于此...”的方法_常见问题解析...
- 制作ubuntu18.04启动盘 + 安装ubuntu18.04
- matlab 神经元系统,应用Matlab设计人工神经元网络控制系统
- bnu1079 BNUEP的球迷 C语言版
- 在Java中判断一个数是奇数还是偶数