java中接口的定义
使用interface来定义一个接口。接口定义同类的定义类似,也是分为接口的声明和接口体,其中接口体由常量定义和方法定义两部分组成。定义接口的基本格式如下:
[修饰符] interface 接口名 [extends 父接口名列表]{
[public] [static] [final] 常量; //全局常量
[public] [abstract] 方法; //抽象方法
}
修饰符:可选,用于指定接口的访问权限,可选值为public。如果省略则使用默认的访问权限。
接口名:必选参数,用于指定接口的名称,接口名必须是合法的Java标识符。一般情况下,要求首字母大写。
extends 父接口名列表:可选参数,用于指定要定义的接口继承于哪个父接口。当使用extends关键字时,父接口名为必选参数。
方法:接口中的方法只有定义而没有被实现。

public abstract void eat(); //接口中只能定义抽象方法
void eat(); //接口中定义的方法没有声明修饰符,默认为 public abstract
public static final int NUM = 10; //在接口中定义一个常量
int NUM = 10; //常量
在JDK1.8后的新特性,可以被所有实现类
//接口之间可以多继承(注意:类是只能单继承)
//具体类实现接口必须实现接口的所有方法
接口的概念
1.接口是一组行为的规范、定义,没有实现(JDK1.8默认方法)
2.使用接口,可以让我们的程序更加利于变化
3.接口是面向对象编程体系中的思想精髓之一
4.面向对象设计法则:基于接口编程
接口的使用规则:
(1)定义一个接口,使用interface关键字
(2)在一个接口中,只能定义常量、抽象方法,JDK1.8后可以定义默认的实现方法
(3)接口可以继承多个接口,extends xxx,xxx
(4)一个具体类实现接口使用inplements关键字
(5)一个类可以实现多个接口
(6)抽象实现接口可以不实现接口的方法
(7)在接口中定义的方法没有声明访问修饰符,默认为public
(8)接口不能有构造方法
(9)接口不能被实例化
面向对象设计原则
(1)对修改关闭,对扩展开放
(2)面向接口编程
接口概述:
- 狭义的角度讲就是指java中的interface
- 广义的角度讲对外提供规则的都是接口
接口特点:
- 接口用关键字interface表示 interface 接口名{}
- 类实现接口用implement表示 class 类名 implement 接口名{}
- 接口不能实例化 按照多态的方式来实例化
- 接口的子类 可以是抽象类(意义不大),可以是具体类(要重写接口中的所有抽象方法)
一个类不写继承任何类,默认继承object类
接口的成员特点:
成员变量:只能是常量,并且是静态的并公共的,默认修饰符:public static final(不写系统默认加上,没有顺序之分)
构造方法:接口没有构造方法
成员方法:只能是抽象方法 默认修饰符: public abstract(默认加上)
类与类,类与接口,接口与接口的关系:
- 类与类 只能单继承,可以多层继承
- 类与接口
- 实现关系,可以单实现,也可以多实现
- 并且还可以在继承一个类的同时实现多个接口
- 接口与接口
- 可以单继承,也可以多继承
抽象类和接口的区别
成员区别:
- 抽象类
- 成员变量:可以变量,也可以常量
- 构造方法:有
- 成员方法:可以抽象,也可以非抽象
- 接口
- 成员变量:只可以常量
- 成员方法:只可以抽象
关系区别:
- 类与类 继承,单继承
- 类与接口 单实现,多实现、
- 接口与接口 单继承,多继承
设计理念区别:
- 抽象类 被继承的体现是:“is a”的关系。抽象类中定义的是该继承体系的共性功能
- 接口 被实现体现的是:“like a”的关系。接口中定义的是该继承体系的扩展功能
java中接口的定义的更多相关文章
- java中接口的定义和接口的实现
1.接口的定义 使用interface来定义一个接口.接口定义同类的定义类似,也是分为接口的声明和接口体,其中接口体由常量定义和方法定义两部分组成.定义接口的基本格式如下: [修饰符] interfa ...
- java中接口的定义与实现
1.定义接口 使用interface来定义一个接口.接口定义同类的定义类似,也是分为接口的声明和接口体,当中接口体由常量定义和方法定义两部分组成.定义接口的基本格式例如以下: [修饰符] in ...
- 转载 - java中接口的向上转型。和多态性
发现一篇对接口总结很精简的文章 1.在java中接口就是一个完全抽象的类,跟抽象类一样不能产生对象,但是可以作为对象的引用,可以由其实现类向上转型,它就跟超类一样, 向上转型了,可以很好的利用接口,可 ...
- Java中接口和抽象类的比較
Java中接口和抽象类的比較-2013年5月写的读书笔记摘要 1. 概述 接口(Interface)和抽象类(abstract class)是 Java 语言中支持抽象类的两种机制,是Java程序设计 ...
- 浅谈Java中接口与抽象类的异同
浅谈Java中接口与抽象类的异同 抽象类和接口这两个概念困扰了我许久,在我看来,接口与抽象类真的十分相似.期间也曾找过许许多多的资料,参考了各路大神的见解,也只能是简简单单地在语法上懂得两者的区别.硬 ...
- Java 中接口和抽象类的 7 大区别!
本文已收录<Java常见面试题>:https://gitee.com/mydb/interview Java 是一门面向对象的编程语言,面向对象的编程语言有四大特征:抽象.封装.继承和 ...
- Java中返回值定义为int类型的 方法return 1返回的是int还是Integer&&finally中return问题
在Java中返回值定义为int类型的 方法return 1:中返回的是Integer值,在返回的时候基本类型值1被封装为Integer类型. 定义一个Test类,在异常处理try中和finally中分 ...
- Java中方法的定义与使用
Java中方法的定义与使用 1.方法的定义: 方法是一段可以被重复调用的代码块. 方法的声明: public static 方法返回值 方法名([参数类型 变量--]){ 方法代码体: return ...
- 关于java中接口定义常量和类定义常量的区别
/** * * @author YZJ * @Description java中定义常量的最佳方法 */ public final class Contants{ /** * @Description ...
随机推荐
- 学习笔记|JSP教程|菜鸟教程
学习笔记|JSP教程|菜鸟教程 ------------------------------------------------------------------------------------ ...
- Linux下查找命令
在CentOs下查找某个目录下的某个文件,使用如下指令: find /目录 -name 文件名 eg:查找当前目录下关于hadoop的文件 find / -name hadoop
- Dubbo自定义日志拦截器
前言 上一篇文章 Spring aop+自定义注解统一记录用户行为日志 记录了 web层中通过自定义注解配合Spring aop自动记录用户行为日志的过程.那么按照分布式架构中Dubbo服务层的调用过 ...
- 总结day3 ---- 进制转换,字符串切片,字符串常用方法.,for 循环,
前情提要: int 的相关操作 进制转换 bit_lenth() str 的索引,以及常用的相关方法 for 循环 索引 切片 相关方法 一 : int 的相关操作 int 主要用于生活中的计算问题 ...
- XCode7无证书真机调试教程
转载自http://altair21.com/156.html 前提条件: XCode版本>=7 1. 进入xcode,菜单栏选择xcode –> preferences (快捷键 com ...
- 基于datax的数据同步平台
一.需求 由于公司各个部门对业务数据的需求,比如进行数据分析.报表展示等等,且公司没有相应的系统.数据仓库满足这些需求,最原始的办法就是把数据提取出来生成excel表发给各个部门,这个功能已经由脚本转 ...
- Java NIO学习与记录(二):FileChannel与Buffer用法与说明
FileChannel与Buffer用法与说明 上一篇简单介绍了NIO,这一篇将介绍FileChannel结合Buffer的用法,主要介绍Buffer FileChannel的简单使用&Buf ...
- 【算法笔记】A1060 Are They Equal
1060 Are They Equal (25 分) If a machine can save only 3 significant digits, the float numbers 1230 ...
- Drupal V7.3.1 框架处理不当导致SQL注入
这个漏洞本是2014年时候被人发现的,本着学习的目的,我来做个详细的分析.漏洞虽然很早了,新版的Drupal甚至已经改变了框架的组织方式.但是丝毫不影响对于漏洞的分析.这是一个经典的使用PDO,但是处 ...
- [转] 遇见 TiDB - 分布式关系数据库
[From] http://kuaibao.qq.com/s/20180510G0UFL000?refer=cp_1026 最近TiDB掀起了一波分布式数据库的热潮,公司也在着手准备TiDB的落地工作 ...