接口实现的注意点:
a.实现一个接口就是要实现该接口的所有的方法(抽象类除外)。
b.接口中的方法都是抽象的。
c.多个无关的类可以实现同一个接口,一个类可以实现多个无关的接口。
extends与implements的不同
extends是继承父类,只要那个类不是声明为final或者那个类定义为abstract的就能继承,也可以调用父类初始化 this.parent()。而且会覆盖父类定义的变量或者函数。这样的好处是:架构师定义好接口,让工程师实现就可以了。整个项目开发效率和开发成本大大降低。
JAVA中不支持多重继承,但是可以用接口来实现,这样就要用到implements,继承只能继承一个类,但implements可以实现多个接口,用逗号分开就行了。实现父类,子类不可以覆盖父类的方法或者变量。即使子类定义与父类相同的变量或者函数,也会被父类取代掉。 
格式:
class A extends B implements C,D,E
一个类通过关键字implements声明自己使用一个或者多个接口。在类的声明中,通过关键字extends来创建一个类的子类。 
class 子类名 extends 父类名 implenments 接口名 
{...
}
若同时用到 extends 和 implements 的时候,extends 必须放在 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 

Implement (interface)相关推荐

  1. TypeError: 'stepUp' called on an object that does not implement interface HTMLInputElement.

    TypeError: 'stepUp' called on an object that does not implement interface HTMLInputElement. 类型错误:&qu ...

  2. go interface 的坑

    一.概述 1 [root@node175 demo]# tree 2 . 3 ├── lib 4 │ └── world.go 5 ├── README 6 └── server.go 7 8 1 d ...

  3. interface接口实例

    C++标准中是没有接口interface的,但是我们在MFC的程序中经常可以看到接口的影子,我就自己查阅的资料和理解,做一个总结把. 首先,在objBase.h里面,有interface的定义 #de ...

  4. 深度解密Go语言之关于 interface 的 10 个问题

    12这次文章依然很长,基本上涵盖了 interface 的方方面面,有例子,有源码分析,有汇编分析,前前后后写了 20 多天.洋洋洒洒,长篇大论,依然有些东西没有涉及到,比如文章里没有写到反射,当然, ...

  5. 【Java基础】implement 与 extends

    前言 : implement是什么? implement 与 extends  有什么区别? 简单来说: extends 用于类的继承 implement 用于实现接口 专业术语来讲: Java中只支 ...

  6. IDEA常用和实用配置以及各种必要插件

    主要是收集IDEA常用和不常用配置陆续更新 ------------------------ 启动项目配置  建议使用idea2021.1.3以上版本: ----------------------- ...

  7. ReSharper 配置及用法

    1:安装后,Resharper会用他自己的英文智能提示,替换掉 vs2010的智能提示,所以我们要换回到vs2010的智能提示 2:快捷键.是使用vs2010的快捷键还是使用 Resharper的快捷 ...

  8. 基类与接口混合继承的声明问题 [C#, Design] -Allen Lee's Magic

    Updated on Friday, November 19, 2004 Written by Allen Lee 1. 问题初现 今天,查看<接口继承的声明问题>一文的反馈,发现Ninp ...

  9. WinForm界面开发之 启动界面

    我们在开发桌面应用程序的时候,由于程序启动比较慢,往往为了提高用户的体验,增加一个闪屏,也就是SplashScreen,好处有:1.让用户看到加载的过程,提高程序的交互响应:2.可以简短展示或者介绍程 ...

最新文章

  1. pandas基于条件判断更新dataframe中特定数据列数值内容的值(Conditionally updating values in specific pandas Dataframe )
  2. filter---用angularjs实现关键字高亮
  3. 通过Katalon Automation Recorder 3步实现自动化测试
  4. MySQL主从架构搭建
  5. token实现单点登录原理
  6. 【转】非教育网中IPv4网络访问IPv6资源
  7. 猫哥教你写爬虫 044--模拟浏览器-作业
  8. 《rework》读书摘要
  9. 成功解决ImportError: cannot import name ‘imresize‘
  10. EmguCV学习(一)
  11. CH340 各型号的区别
  12. 黑客的过去、未来与死亡
  13. web前端期末大作业——开心旅游网站设计与实现(HTML+CSS+JavaScript)
  14. Python爬虫解决推广链接(跳转网页)的办法
  15. *p++和(*P)++的区别
  16. (四) l立创EDA之封装库的创建
  17. Python爬虫学习-Day7
  18. ION-DTN网络设计思想(一)
  19. dlmalloc 图解
  20. 【文文殿下】Win7打开无线热点

热门文章

  1. 抱歉,“知识付费”真的治不了你的焦虑
  2. Linux重定向+管道命令+环境变量PATH
  3. shell那点事儿——运维工程师必会shell知识
  4. 海康威视-测试-面经(一面+hr面)
  5. Android 屏幕适配之屏幕分辨率(创建不同dimen)适配
  6. 李宏毅深度学习——机器终身学习
  7. 网络流量异常检测综述
  8. 广义精确匹配-Coarsened Exact Matching (CEM)
  9. 设计失败的挫败感--老资格给你的压力
  10. ABAQUS模拟裂纹扩展方法——Debond