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 ...
随机推荐
- “全栈2019”Java多线程第十五章:当后台线程遇到finally
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java多 ...
- “全栈2019”Java第八十五章:实现接口中的嵌套接口
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...
- tushare模块的应用
一.简介以及环境安装 TuShare是一个著名的免费.开源的python财经数据接口包.其官网主页为:TuShare -财经数据接口包.该接口包如今提供了大量的金融数据,涵盖了股票.基本面.宏观.新闻 ...
- mysql分表分库选型
三个方向: 一.应用中自己实现,可直连数据库,自己实现因目前使用的Mybatis框架可以使用两种做法: 1.在SQL中直接分表逻辑,我查了一下代码中的sql,发现join的千姿百态,不大动这些sql这 ...
- java使用Redis5--分布式存储
Redis实现分布式存储的方法主要是采用一致性哈稀分片(Shard),将不同的key分配到不同的redis server上,达到横向扩展的目的. package redis; import java. ...
- MyEclipse生成Javadoc帮助文档
Javadoc是Sun公司提供的一个技术,它从程序源代码中抽取类.方法.成员等注释形成一个和源代码配套的API帮助文档.也就是说,只要在编写程序时以一套特定的标签作注释,在程序编写完成后,通过Java ...
- declare命令
还是围绕以下几个问题进行学习; 1.declare是什么? 2.问什么要用declare? 3.怎样使用declare? 1.declare是什么? ♦declare应用的很多,向我们各种语言都会有声 ...
- 第三方库PIL
第三方库PIL 一.Python简介 Python是一门简洁高效.通俗易懂的高阶动态编程语言,也可以理解成是一种面向对象的解释型计算机程序设计语言. Python具有丰富和强大的库.也经常被行内人员称 ...
- sparksql连接mysql
1.方法1:分别将两张表中的数据加载为DataFrame /* * 方法1:分别将两张表中的数据加载为DataFrame * */ /* Map<String,String> option ...
- Java代码度量分析工具:Designite简介
前言 在Java面向对象课程的学习过程中,我们需要使用度量工具来分析自己程序的代码结构.此类的度量工具有许多,或以插件形式存在于各个IDE中,或以.jar包的形式供用户使用.在这里,笔者向大家简单的介 ...