接口(interface、implement)
接口(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)相关推荐
- php中的抽象类(abstract class)和接口(interface)
一. 抽象类abstract class 1 .抽象类是指在 class 前加了 abstract 关键字且存在抽象方法(在类方法 function 关键字前加了 abstract 关键字)的类. 2 ...
- go struct 静态函数_Go语言学习笔记(四)结构体struct 接口Interface 反射reflect...
加 Golang学习 QQ群共同学习进步成家立业工作 ^-^ 群号:96933959 结构体struct struct 用来自定义复杂数据结构,可以包含多个字段(属性),可以嵌套: go中的struc ...
- 零基础入门 自学 JAVA SE 基础篇(九)instanceof final 开闭原则 多态 抽象(abstract)方法与抽象类 接口(interface)
JAVA SE自学 基础篇 多态 instanceof final 开闭原则 多态 抽象(abstract)方法与抽象类 接口(interface) 目标 父类型与子类型之间的转换及instanceo ...
- java接口的关键字_Java 接口 interface关键字
1.概念:一种特殊的类,有全局常量和公共方法组成 定义接口用interface关键字 2.语法: //中括号"[ ]"的含义:你可继承父接口,也可不继承,是可选的 [修饰符] (a ...
- Go 学习笔记(35)— Go 接口 interface (接口声明、接口初始化、接口方法调用、接口运算、类型断言、类型查询、空接口)
1. 接口概念 接口是双方约定的一种合作协议.接口实现者不需要关心接口会被怎样使用,调用者也不需要关心接口的实现细节.接口是一种类型,也是一种抽象结构,不会暴露所含数据的格式.类型及结构. 接口内部存 ...
- 接口(Interface)的深入理解
接口(Interface)的深入理解 一:接口是规范(不展开) 二:接口可以看成是一个特殊的类 1: 接口可以定义"接口类型变量",就好像类可以定义类类型的变量(或者说是引用类型变 ...
- Java接口interface
Java接口interface 1.多个无关的类可以实现同一个接口. 2.一个类可以实现多个无关的接口. 3.与继承关系类似,接口与实现类之间存在多态性. 接口(interface)是抽象方法和常量值 ...
- Java的类(class)、包(package)和接口(interface)
在Java中,类(class)是用来代表对象的基本单元.对象(object)可以是现实世界中的任何一个实体,它具有若干区别于其它对象的属性和操作.而类则通过为对象定义属性和操作来概括一类实体.它封装了 ...
- Java接口(interface)的概念及使用
在抽象类中,可以包含一个或多个抽象方法:但在接口(interface)中,所有的方法必须都是抽象的,不能有方法体,它比抽象类更加"抽象". 接口使用 interface 关键字来声 ...
- java 抽象接口类,Java接口(interface)和Java抽象类(abstract class)的区别(详诉版)
1.概述 一个软件设计的好坏,我想很大程度上取决于它的整体架构,而这个整体架构其实就是你对整个宏观商业业务的抽象框架, 当代表业务逻辑的高层抽象层结构合理时,你底层的具体实现需要考虑的就仅仅是一些算法 ...
最新文章
- ajax从页面向action传递json 公司--》
- python结构嵌套_python2.3嵌套if结构:
- 升级版记事本 Notepad++
- 苹果真要开发无线充电外壳 已要求联发科提供芯片样品
- Linux操作系统下三种配置环境变量的方法(linux下几种profile执行顺序)
- CreateMainWindow 创建主窗口属性
- azdb文件怎么打开_AZDBMappingSvcs.dll
- 布客·ApacheCN 编程/后端/大数据/人工智能学习资源 2020.9
- 聪明的ITPRO之二IT人做事要“圆”
- 指针变量的声明、地址相关运算--“*”和“”
- UIWindow statusBar消失
- 详解Autosar Arxml中的CANFD报文及格式
- 【JS】中文繁简转换
- 大家快来看看,心中无女人,写文章自然神。
- 【Structure Light】reading notes(一)
- [JZOJ6347] 【NOIP2019模拟2019.9.8】ZYB玩字符串
- 高德地图第三方组件应用
- 记录大疆研发管理岗初面
- 【BUCTOJ训练:字符串最大跨距(Python)】
- 基于java的奖学金评定系统设计与实现