1、什么是接口?
接口是一种对事物的公用特征进行的抽象,抽象出来的特征放在接口中进行描述,类似类,和类的区别是比类更特别,接口中的内容也有限制,不像类中可以有属性,方法,代码块等等。接口中的成员只能是全局变量、抽象方法、静态方法、默认方法。

接口比抽象类还特殊,抽象类其实也是一种特殊类。
抽象类不能被实例化,接口也是一样,不能够被实例化,其实从它的定义中就可以得知,接口中只能有抽象方法。

接口和类的最大的不同是一个类可以实现多个接口,而一个类不能继承多个类。

//A继承了父类B并实现了接口CC,DD,EE
class A extends B implements CC,DD,EE

接口与接口之间可以实现多继承。

interface AA{}interface BB{}interface CC extends AA, BB{}

接口关键字:interface
类和子类之间是is a的关系,比如男人是人。
接口和类是并列的结构。即都是一种抽象。
接口的语法:使用关键字interface 修饰的。
接口中的成员:
可以定义全局变量和抽象方法(jdk1.7中)
jdk8中除了7中还可以定义静态方法、默认方法。

class InterfaceTest{}
interface Flyable{public static final int MAX_SPEED = 7900;int MIN_SPEED = 1;//可以省略,默认也是和第一行一样的。在接口外面是也可以直接通过接口调用。public abstract void fly();void stop();//这里也可以省略//接口中不能够定义构造器,那么也就是接口不能够实例化。
}

2、接口的作用
在定义类的时候根据需求进行实现一个接口或者多个接口,这样类就拥有了接口的特征。在实例化对象的时候,就可以用对象进行调用接口的特征。

3、接口的使用场景
一般都是通过类来实现接口,不会对接口进行实例化。
//如果类实现了接口中所有方法,那么就可以实例化对象。
如果类中没有全部实现了接口中的所有方法,那么类还是抽象类。

package com.netease;
public class Main {public static void main(String[] args) {// write your code herePlane p = new Plane();p.fly();p.stop();}
}
interface Flyable{public static final int MAX_SPEED = 7900;int MIN_SPEED = 1;//可以省略,默认也是和第一行一样的。在接口外面是也可以直接通过接口调用。public abstract void fly();void stop();//这里也可以省略//接口中不能够定义构造器,那么也就是接口不能够实例化。
}class Plane implements Flyable{public void fly(){System.out.println("飞机可以飞");}public void stop(){System.out.println("飞机可以停");}
}

打印结果:

飞机可以飞
飞机可以停

java类可以实现多个接口------》因为java的语法不支持多继承,也就是一个类只有有一个父类,那么为了解决多继承的问题,出现了接口,但是不是真正的继承,只是实现接口。

public class Main {public static void main(String[] args) {// write your code herePlane p = new Plane();p.fly();p.stop();p.att();}
}
interface Flyable{public static final int MAX_SPEED = 7900;int MIN_SPEED = 1;//可以省略,默认也是和第一行一样的。在接口外面是也可以直接通过接口调用。public abstract void fly();void stop();//这里也可以省略//接口中不能够定义构造器,那么也就是接口不能够实例化。
}interface attrack{public static final String AK = "serious";public abstract void att();
}
class Plane implements Flyable,attrack{@Overridepublic void fly(){System.out.println("飞机可以飞");}@Overridepublic void stop(){System.out.println("飞机可以停");}@Overridepublic void att(){System.out.println("飞机可以袭击");}
}

输出结果:

飞机可以飞
飞机可以停
飞机可以袭击

java中接口学习总结相关推荐

  1. Java中接口、抽象类与内部类学习

    2019独角兽企业重金招聘Python工程师标准>>> Java中接口.抽象类与内部类学习 接口与内部类为我们提供了一种将接口与实现分离的更加结构化的方法. 抽象类和抽象方法 抽象方 ...

  2. java中接口私有反方_Java 8:在接口中声明私有和受保护的方法

    java中接口私有反方 引入Java 8时,我们可以在接口中使用默认方法. 此功能的主要驱动程序是允许接口扩展,同时保留对旧接口版本的向后兼容性. 一个示例是在现有Collection类中引入stre ...

  3. java中接口文件创建_功能接口简介–在Java 8中重新创建的概念

    java中接口文件创建 世界各地的所有Java开发人员都将至少使用以下接口之一:java.lang.Runnable,java.awt.event.ActionListener,java.util.C ...

  4. Java中接口的多继承

    我们知道Java的类只能继承一个类,但可以实现多个接口.但是你知道么?Java中的接口却可以继承多个接口.本文就来说一说Java中接口的多继承. 进入主题之前,先扩展一下.Java为什么只支持单继承呢 ...

  5. [转载] 面试题:说说Java中接口、类、成员变量、成员方法、构造方法有哪些访问修饰符和他们的作用范围

    参考链接: Java中的访问修饰符 * 问题:说说Java中接口.类.成员变量.成员方法.构造方法有哪些访问修饰符和他们的作用范围 * 答:接口的访问修饰符只有public 1个 *    类的访问修 ...

  6. java中接口私有反方_接口中的Java 9私有方法

    java中接口私有反方 Java 9 has been released and there has been a lot of changes. Today we will look into Ja ...

  7. Java中接口的作用,为什么要写接口?

    ** Java中接口的作用 转载于:https://www.zhihu.com/question/20111251 ** **困惑:**例如我定义了一个接口,但是我在继承这个接口的类中还要写接口的实现 ...

  8. Java中接口如何继承接口呢?

    转自: Java中接口如何继承接口呢? 下文讲述一个接口继承另一个接口的实现方式,如下所示: 实现思路:接口继承接口,采用的extends关键字 例:   接口继承接口的示例分享 interface ...

  9. java中接口可以继承接口吗?

    java中接口可以继承接口吗? java中不允许类多重继承的主要原因是:如果A同时继承B和C,而假如B和C同时有一个d方法,A如何决定该继承哪一个呢? 但接口不存在这样的问题,接口中全都是抽象方法,继 ...

最新文章

  1. RabbitMQ 入门系列(5)— RabbitMQ 使用场景优缺点
  2. git push throws error: RPC failed; result=22, HTTP
  3. 检查一列数据的重复项 vba_01.VBA自动化办公——数据的局部加和
  4. 自适应登陆html5,html5验证自适应
  5. 防抖debounce和节流throttle
  6. LeetCode 211. 添加与搜索单词 - 数据结构设计(Trie树)
  7. 怎样下载python模块sublime text3中_python安装环境配置、python模块添加、sublime text编辑器配置...
  8. 取代Cookie失败,Google上线FLoC反遭“围攻”!
  9. 联想在华为背后“捅刀”?谁在让 5G 标准投票成闹剧
  10. SQLServer------存储过程的使用
  11. android 关于 textview首行缩进 显示图片、文字问题
  12. 持续集成实践二之Jenkins与Sonar Qube集成
  13. 手机中必备的黑科技App,个个好用至极,现在的你一定需要
  14. linux单用户可以删除文件么,Linux单用户模式详解 及应用场景
  15. 密码学40年|重要历史与人物
  16. 开发者工具——web前端助手
  17. 36-基于51单片机的LED彩灯控制器设计
  18. CoreText(四):行 CTLineRef
  19. 把精力专注在“一件事”上的林曦老师,太容易让人着迷了!
  20. 2020线上中国国际智能产业博览会区块链高峰论坛重庆举行

热门文章

  1. 员工修改添加,部门修改添加
  2. 什么是Mysql的next-key、插入缓冲、二次写、自适应哈希索引和预读
  3. 移动硬盘 双linux系统安装教程,一种单移动硬盘安装多个操作系统的方法与流程...
  4. 什么是长尾词,长尾关键词的SEO秘密有哪些?
  5. DataFrame写入mysql时报错Duplicate entry ‘...‘ for key ‘PRIMARY
  6. 杭州职业技术学院计算机教研室主任,课题名称杭州地区农村小学教师运用现代教育技术现状调查和对策的研究.doc...
  7. 【嵌入式07】寄存器映射原理详解,GPIO端口的初始化设置步骤
  8. 电子专业 html,25款专业的 WordPress 电子商务网站主题_html/css_WEB-ITnose
  9. 对互联网的认识和看法,直接关系到产业互联网的路径发展
  10. synergy跨平台键鼠共享