接口(interface、implement)

接口:interface
接口的类中
所有的属性默认为:public static final

所有的方法默认为:public abstract

在jdk1.8之前只能定义静态的常量和公共的抽象方法,在jdk1.8之后就可以定义静态方法和默认方法
(常量一般都建议使用大写字母)

意义

接口存在的意义:Java中一个类只能有一个父类,所以用接口可以实现多继承的逻辑

从本质上来讲,接口是一种特殊的抽象类,这种“抽象类”中只包含了常量和方法的定义,而没有变量和方法的实现

定义

接口的定义:使用interface关键字来声明一个接口。

【访问权限修饰符】 interface 接口名称 【extends 其他接口名1,… 其他接口名n】{
// 声明常量
// 抽象方法
// 静态方法
// 默认方法
}
接口的使用:
类使用implements关键字来实现接口。在类的声明中,implements关键字是跟在class声明之后的
【访问权限修饰符】 class 类名 implements 接口名1,… , 接口名n { }

public class MyInterfaceImpl implements MyInterface1,MyIntereFace2 {}

接口与继承的结合
【访问权限修饰符】class 类名 extends 父类名 implements 接口名1,… , 接口名n { }

public class MyInterfaceImpl extends fulei implements MyInterface1,MyIntereFace2 {}

特性

● 接口是隐式抽象的,当声明一个接口的时候,不必使用abstract关键字。
● 接口中方法可以是抽象的,静态的,默认的。
● 接口中声明的属性默认为 public static final 的。
● 接口不是被类继承的,是被类用来实现的。
● 接口不能实例化(就是没有构造方法,也是和抽象类的区别),但是可以声明对象的引用(多态性)。
● 多个类是可以实现一个共同的接口。
● 一个类是可以实现多个接口的,但是只能继承一个类。
● 与继承关系类似,接口与实现类之间存在多态性。
● 一个接口是可以继承其他多个接口的。
● 当一个类实现接口时,类是要求实现接口中的所有方法(包括要实现的接口所继承的所有接口),否则,类就必须声明为抽象的类。

一个类可以实现多个接口,但是一个类只能继承一个类
小知识:一个类如果是一个接口的实现类,那么我们习惯命名是在接口名后面加上impl

package com.functorone;public class Demo {public static void main(String[] args) {//是可以被调用到的System.out.println(MyInterface.NUM);  //常量一般都建议使用大写字母MyInterface.test1();            //直接调用到静态方法MyInterfaceImpl myInterface = new MyInterfaceImpl();myInterface.eat();}
}package com.functorone;public interface MyInterface {//默认之下它的完整语句是 public static final int a = 10;int NUM = 10;//默认之下它的完整语句是 public abstract void eat();void eat();     //定义方法(定义功能)//默认方法只能通过子类来调用,子类可以重写也可以不重写default void test() {         //完整语句是: public default void test()System.out.println("默认方法");}//静态方法是可以直接通过接口名调用到static void test1() {System.out.println("静态方法");}
}package com.functorone;/** 要么将这个类声明为抽象类* 要么实现接口里面所有的抽象类* */
public class MyInterfaceImpl implements MyInterface {@Overridepublic void eat() {System.out.println("MyInterface里面的eat抽象方法的实现");}
}

接口(interface、implement)相关推荐

  1. php中的抽象类(abstract class)和接口(interface)

    一. 抽象类abstract class 1 .抽象类是指在 class 前加了 abstract 关键字且存在抽象方法(在类方法 function 关键字前加了 abstract 关键字)的类. 2 ...

  2. go struct 静态函数_Go语言学习笔记(四)结构体struct 接口Interface 反射reflect...

    加 Golang学习 QQ群共同学习进步成家立业工作 ^-^ 群号:96933959 结构体struct struct 用来自定义复杂数据结构,可以包含多个字段(属性),可以嵌套: go中的struc ...

  3. 零基础入门 自学 JAVA SE 基础篇(九)instanceof final 开闭原则 多态 抽象(abstract)方法与抽象类 接口(interface)

    JAVA SE自学 基础篇 多态 instanceof final 开闭原则 多态 抽象(abstract)方法与抽象类 接口(interface) 目标 父类型与子类型之间的转换及instanceo ...

  4. java接口的关键字_Java 接口 interface关键字

    1.概念:一种特殊的类,有全局常量和公共方法组成 定义接口用interface关键字 2.语法: //中括号"[ ]"的含义:你可继承父接口,也可不继承,是可选的 [修饰符] (a ...

  5. Go 学习笔记(35)— Go 接口 interface (接口声明、接口初始化、接口方法调用、接口运算、类型断言、类型查询、空接口)

    1. 接口概念 接口是双方约定的一种合作协议.接口实现者不需要关心接口会被怎样使用,调用者也不需要关心接口的实现细节.接口是一种类型,也是一种抽象结构,不会暴露所含数据的格式.类型及结构. 接口内部存 ...

  6. 接口(Interface)的深入理解

    接口(Interface)的深入理解 一:接口是规范(不展开) 二:接口可以看成是一个特殊的类 1: 接口可以定义"接口类型变量",就好像类可以定义类类型的变量(或者说是引用类型变 ...

  7. Java接口interface

    Java接口interface 1.多个无关的类可以实现同一个接口. 2.一个类可以实现多个无关的接口. 3.与继承关系类似,接口与实现类之间存在多态性. 接口(interface)是抽象方法和常量值 ...

  8. Java的类(class)、包(package)和接口(interface)

    在Java中,类(class)是用来代表对象的基本单元.对象(object)可以是现实世界中的任何一个实体,它具有若干区别于其它对象的属性和操作.而类则通过为对象定义属性和操作来概括一类实体.它封装了 ...

  9. Java接口(interface)的概念及使用

    在抽象类中,可以包含一个或多个抽象方法:但在接口(interface)中,所有的方法必须都是抽象的,不能有方法体,它比抽象类更加"抽象". 接口使用 interface 关键字来声 ...

  10. java 抽象接口类,Java接口(interface)和Java抽象类(abstract class)的区别(详诉版)

    1.概述 一个软件设计的好坏,我想很大程度上取决于它的整体架构,而这个整体架构其实就是你对整个宏观商业业务的抽象框架, 当代表业务逻辑的高层抽象层结构合理时,你底层的具体实现需要考虑的就仅仅是一些算法 ...

最新文章

  1. ajax从页面向action传递json 公司--》
  2. python结构嵌套_python2.3嵌套if结构:
  3. 升级版记事本 Notepad++
  4. 苹果真要开发无线充电外壳 已要求联发科提供芯片样品
  5. Linux操作系统下三种配置环境变量的方法(linux下几种profile执行顺序)
  6. CreateMainWindow 创建主窗口属性
  7. azdb文件怎么打开_AZDBMappingSvcs.dll
  8. 布客·ApacheCN 编程/后端/大数据/人工智能学习资源 2020.9
  9. 聪明的ITPRO之二IT人做事要“圆”
  10. 指针变量的声明、地址相关运算--“*”和“”
  11. UIWindow statusBar消失
  12. 详解Autosar Arxml中的CANFD报文及格式
  13. 【JS】中文繁简转换
  14. 大家快来看看,心中无女人,写文章自然神。
  15. 【Structure Light】reading notes(一)
  16. [JZOJ6347] 【NOIP2019模拟2019.9.8】ZYB玩字符串
  17. 高德地图第三方组件应用
  18. 记录大疆研发管理岗初面
  19. 【BUCTOJ训练:字符串最大跨距(Python)】
  20. 基于java的奖学金评定系统设计与实现

热门文章

  1. 天地图三维帮助文档(Cesium)
  2. 用Hbuilder实现:一行HTML代码+tab快捷键,快速创建HTML结构
  3. 【Ray Tracing】光线追踪——概述
  4. 快光慢光的产生原理及群速度相速度的定义
  5. python程序员工资-2018 年程序员工资大揭底!快来看看程序员赚多少钱
  6. Win7和XP操作系统显示文件扩展名
  7. BUCK/BOOST电路
  8. Angular6 + My97DatePicker时间选择器实现数据双向绑定
  9. C语言if语句中常见的问题
  10. c语言if语句用法总结,C语言if语句总结.doc