相对抽象类来讲,接口就是比抽象类还要抽象的抽象类,丝毫不带半点实现的内容。
接口可以更加规范的对子类进行约束。
接口全面地专业地实现了:规范和具体实现的分离。
接口就是规范,定义的是一组规则,提现了现实世界中“如果你是...则必须...”的思想。如果你是动物,则必须能动。

接口的本质是契约,就像法律一样。制定好后大家都遵守。
项目的具体需求是多变的,我们必须以不变应万变才能从容开发,此处的“不变”就是“规范”。
因此,我们开发项目往往都是面向接口编程!

例子:

  1. package com.ws.basic;
  2. interface gobj{
  3. public abstract void  attack();
  4. }
  5. class tower implements gobj{
  6. @Override
  7. public void attack() {
  8. System.out.println("箭塔攻击范围内所有目标,重甲单位有伤害加成!");
  9. }
  10. }
  11. public class test {
  12. public static void main(String[] args) {
  13. tower t = new tower();
  14. t.attack();
  15. }
  16. }

接口的定义:

接口中只有常量和抽象方法:
常量是 public static final
方法是 public abstract
如果没有写,就是默认的。

implements:

implements是一个类实现一个接口用的关键字,它是用来实现接口中定义的抽象方法。
Java中没有多继承,为了弥补这里的不足,用到了 interface 。
java 中的接口定义基本上就是像C++中的类中定义的类中包含实虚函数也就是C++中的抽象类。

接口不能创建实例,但是可用于声明引用变量类型。
一个类实现了接口,必须实现接口中所有的方法。
接口支持多继承,例如:class A extends B implements C,D,E

接口和类的区别:

接口不能用于实例化对象。
接口没有构造方法。
接口中所有的方法必须是抽象方法。
接口不能包含成员变量,除了 static 和 final 变量。
接口不是被类继承了,而是要被类实现。
接口支持多重继承。

接口和抽象类的区别:

抽象类中的方法可以有方法体,就是能实现方法的具体功能,但是接口中的方法不行。
抽象类中的成员变量可以是各种类型的,而接口中的成员变量只能是 public static final 类型的。
接口中不能含有静态代码块以及静态方法(用 static 修饰的方法),而抽象类是可以有静态代码块和静态方法。
一个类只能继承一个抽象类,而一个类却可以实现多个接口。

接口的主要应用:

多态接口动态加载;
接口作为方法的参数传递;
产生常量群。

[转] Java接口_interface_implements的更多相关文章

  1. java接口调用——webservice就是一个RPC而已

    很多新手一听到接口就蒙逼,不知道接口是什么!其实接口就是RPC,通过远程访问别的程序提供的方法,然后获得该方法执行的接口,而不需要在本地执行该方法.就是本地方法调用的升级版而已,我明天会上一篇如何通过 ...

  2. java 接口的作用和好处

    1.java 接口的作用 http://blog.csdn.net/hack_bug/article/details/7634737 2.一位Java大牛的回答 很多JAVA初级程序员对于接口存在的意 ...

  3. java接口

    一.定义 Java接口(Interface),是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为( ...

  4. java接口的嵌套

    java接口 1.接口中定义的变量默认是public static final 型,且必须给其初值,所以实现类中不能重新定义,也不能改变其值 2.接口中的方法默认都是 public abstract ...

  5. java 接口和抽象类的区别

    java 接口和抽象类的区别抽象类:1.含有抽象方法的类一定为抽象类,反过来抽象类,不一定含有抽象方法:2.抽象类必须用abstract来进行定义,抽象方法也必须用abstract来进行定义:3.抽象 ...

  6. java 接口(上)

    1.接口中的方法都是抽象方法.而普通的抽象类里面不一定都是抽象方法.抽象类中必须有抽象方法,同时也可以有非抽象方法.继承抽象父类的子类中,如果依然有抽象方法,那么这个子类也是抽象类.即只要类中有抽象方 ...

  7. java接口和抽象类

    关于接口 1.创建一个接口,需要使用interface关键字. 2.实现一个接口,需要使用implements关键字. 3.接口的成员属性都是静态常量(默认public static final). ...

  8. python面向对象进阶 反射 单例模式 以及python实现类似java接口功能

    本篇将详细介绍Python 类的成员.成员修饰符.类的特殊成员. 类的成员 类的成员可以分为三大类:字段.方法和特性. 注:所有成员中,只有普通字段的内容保存对象中,即:根据此类创建了多少对象,在内存 ...

  9. 初探设计:Java接口和抽象类何时用?怎么用?

    今天犯了个错: “接口变动,伤筋动骨,除非你确定只有你一个人在用”.哪怕只是throw了一个新的Exception.哈哈,这是我犯的错误. 一.接口和抽象类 类,即一个对象. 先抽象类,就是抽象出类的 ...

随机推荐

  1. FZU - 1688 Binary land

    题目链接  Problem 1688 Binary land Accept: 72    Submit: 171Time Limit: 1000 mSec    Memory Limit : 3276 ...

  2. Linux之常识小结[版本]

    1 linux内核版本 major.minor.patchlevel 主版本号.次版本号.修补次数 次版本号的意义:偶数稳定版,奇数不稳定版 注意:查看系统版本信息 方法1.uname -a 方法2. ...

  3. 第16月底18天 phpstudy设置

    1.phpstudy设置-端口常规设置 E:\phpStudy\Apache\bin>httpd.exeAH00526: Syntax error on line 14 of E:/phpStu ...

  4. pygame(class类)调用视图的方法

    以下将介绍pygame精灵动画的基础知识,希望对大家有帮助:1.在此,精灵类必须继承pygame.sprite.Sprite并初始化pygame.sprite.Sprite.__init__(self ...

  5. Java 的NIO 3个主要概念 Channel、Buffer、Selector

    Java 的NIO 3个主要概念 Channel.Buffer.Selector,为何提高了性能

  6. ResNet152网络复现(Caffe)

    一.准备数据集 1)  下载数据集 Imagnet网站上下载了三类图片,分别是big cat.dog.fish,其中训练集的图片数一共是4149,测试集的图片数是1003,训练集和测试集的图片数比例4 ...

  7. Dubbo服务容错(整合hystrix)

    简介:Hystrix旨在通过控制那些访问远程系统.服务和第三方库的节点从而对延迟和故障提供更强大的容错能力,Hystrix具备拥有回退机制和断路器功能的线程和信号隔离.请求缓存和请求打包以及监控和配置 ...

  8. Python学习之not,and,or篇

    Python学习之not,and,or篇 运算符示意 not –表示取反运算. and –表示取与运算. or –表示取或运算. 运算符优先级 not > and > or. 举例如下: ...

  9. 半自动代码生成--方式C#

    寻找半自动代码生成方式基于C#的GUI或者其它: 1. (推荐)Millennials - A Custom Source Code Generator  https://www.codeprojec ...

  10. mysqlbinlog恢复数据注意事项【转】

    mysqlbinlog 恢复数据注意事项 前言: 上次有个有个朋友恢复 MySQL 数据,一直恢复不成功,也没有报错信息,使用的环境是 MySQL 5.7 使用了 GTID 以及 binlog 格式为 ...