JAVA接口详细讲解
接口
接口的概念
接口代表的是一个功能的集合,定义规范,所有的方法都是抽像方法,这是一种思想是一种规则,将这个种规则称为接口。
接口的定义
- 使用关键字 interface 叫做接口
- 修饰符 interface 接口名{//增加定义的功能,都是抽像的方法}
注:接口的源文件仍然是java文件,编译后仍为class文件.
代码参照:
public interface Jiekou {
//这里增加功能抽像方法
public abstract void fun();
}
接口特点
- 接口中的方法全是抽像方法
- 接口中使用interface表示
- 接口,不能new(原因:抽像方法不能运行)
- 接口的实现,依靠类,类与接口之间的关系,实现关系,使用关键字implements
- 实现格式: class lei implements Jiekou{//功能方法} 代码如下:
public class TestDeom implements Jiekou{
@Override
public void fun() {
}
//重写方法
}
- 将接口中的所有抽象全部重写,那么就是一个类,可以实例化对象
- 没有将接口中的所有抽象全部重号,或者是重写了一部分,这个类将是一个抽象类,不能实例化对象。
- 接口可以玩多态 A a = new B A代表接品,B代表的是实现类,实现类不能是抽象类。
- 接口可以作为方法的参数或者返回值
接口中的成员
- 接口中有变量,但是不叫做变量,而是叫做常量
- 接口中所谓的常量都是有默认的修饰的 public static final 数据类型 常量名 = 值
- 使用成员:接口名.成员
方法:
- 所有的方法都是抽象方法,接口中的所有抽象方法都有默认修饰 public abstract
- 抽象方法的定义:修饰符 abstract 返回值类型 方法名(参数列表);
- 构造方法:接口中没有构造方法。类实现接口,重写所有的抽象,类可以实例化对象,JVM调用类的构造 方法,类中构造的第一行默认隐式super();
- 类确实调用了super().这个super不来自于接口,来自于类的父类,类如果没有直接继承任何父类,那么自动继承Object类,Object类是所有类的父类,所以super()是调用了Object的空参构造
类与类,类与接口,接口与接口之间的关系
- 类与类之间,继承关系,使用关键字 extends 类与类只能单继承
- 接口与接口之间是多继承的关系,如果两个接口之间有重复的方法,不会存在调用冲突,因为根本不会调用父类中的抽象。
接口的优势:
1.解除了类与类之间的单继承局限性
2.接口中因为都是抽象,所以尽量要求实现类必须重写所有抽象方法,解除类与类之间的耦合性。
3.类在继承了一个父类的同时还可以实现多个抽象类
public class TestDeom extends Test implements Jiekou{
public static void main(String[] args) {
}
}
4.接口与接口之间是继承的关系,使用关键字extends,接口可以多继承,例如interface A extends B,C A接口继承接口B和接口C。
JAVA接口详细讲解的更多相关文章
- java 发送邮件详细讲解
一.JavaMail概述: JavaMail是由Sun定义的一套收发电子邮件的API,不同的厂商可以提供自己的实现类.但它并没有包含在JDK中,而是作为JavaEE的一部分. 厂商所提供 ...
- java 大数详细讲解
介绍 java中用于操作大叔的类主要有俩种 第一个是BigInteger,代表大整数.第二个是BigDecimal,代表大浮点数.两种类的操作方法类似,所以我们只讲解BigInterger的用法 基本 ...
- java8新特性-函数式接口详细讲解及案例
一.函数式接口 1.1 概念 函数式接口在Java中是指:有且仅有一个抽象方法的接口.函数式接口,即适用于函数式编程场景的接口.而Java中的函数式编程体现就是Lambda,所以函数式接口就是可 以适 ...
- 第五节:详细讲解Java中的接口与继承
前言 大家好,给大家带来详细讲解Java中的接口与继承的概述,希望你们喜欢 什么是接口(interface) 接口中的方法都是抽象方法,public权限,全是抽象函数,不能生成对象 interface ...
- 第十节:详细讲解一下Java多线程,随机文件
前言 大家好,给大家带来第十节:详细讲解一下Java多线程,随机文件的概述,希望你们喜欢 多线程的概念 线程的生命周期 多线程程序的设计 多线程的概念 多线程的概念:程序是静态的,进程是动态的.多进程 ...
- 第九节:详细讲解Java中的泛型,多线程,网络编程
前言 大家好,给大家带来详细讲解Java中的泛型,多线程,网络编程的概述,希望你们喜欢 泛型 泛型格式:ArrayList list= new ArrayList(); ArrayList list= ...
- 第八节:详细讲解Java中的异常处理情况与I/O流的介绍以及类集合框架
前言 大家好,给大家带来详细讲解Java中的异常处理情况与I/O流的介绍以及类集合框架的概述,希望你们喜欢 JAVA 异常 try...catch...finally结构的使用方法 class Tes ...
- 史上最详细JVM,Java内存区域讲解
本人免费整理了Java高级资料,一共30G,需要自己领取:传送门:https://mp.weixin.qq.com/s/JzddfH-7yNudmkjT0IRL8Q 运行时数据区域 JVM载执行Jav ...
- 第四节:详细讲解Java中的类和面向对象思想
前言 大家好,给大家带来详细讲解Java中的类和面向对象思想的概述,希望你们喜欢 类和面向对象 在Java中怎样理解对象,创建对象和引用:什么是引用,对于基础学习的同学,要深入了解引用.示例:Stri ...
随机推荐
- Algorithm: Sieve of Eratosthenes
寻找比n小的所有质数的方法. 2是质数, 2*i都是质数,同样3是质数,3*i也都是质数 代码如下 int n; vector<, true); prime[] = prime[] = fals ...
- Java中的内存泄漏
[转]介绍Java中的内存泄漏 1. 什么是内存泄漏? 内存泄漏的定义:对象已经没有被应用程序使用,但是垃圾回收器没办法移除它们,因为还在被引用着. 要想理解这个定义,我们需要先了解一下对象在内存中的 ...
- ES6中的class 与prototype
一.定义构造函数 在以前的js中,生成一个对象实例,需要先定义构造函数,然后通过prototype 的方式来添加方法,在生成实例: function Person(){ this.name = &qu ...
- PYTHON 爬虫笔记七:Selenium库基础用法
知识点一:Selenium库详解及其基本使用 什么是Selenium selenium 是一套完整的web应用程序测试系统,包含了测试的录制(selenium IDE),编写及运行(Selenium ...
- kvm初体验之八:调整vm的vcpu, memory, disk大小
假设host上创建的vm的名字为vm1. 1. 查看vm1的domain information [root@tanghuimin thm]# virsh dominfo vm1 Id: 10 Nam ...
- Java_HTTP_01_HttpClient
一. 二.参考文档 1. HttpClient官方文档 HttpClient官方文档中文翻译 1.HttpClient 4 实现文件下载 2.httpclient 上传文件.下载文件 3.httpcl ...
- [acm]HDOJ 2064 汉诺塔III
题目地址: http://acm.hdu.edu.cn/showproblem.php?pid=2064 汉诺塔变种,只能从中间专业,递归关系为:f(n)=3*f(n-1)+2. //汉诺塔变种,只能 ...
- [Codeforces 452E] Three Strings
[题目链接] https://codeforces.com/contest/452/problem/E [算法] 构建后缀数组 用并查集合并答案即可 时间复杂度 : O(NlogN) [代码] #in ...
- 洛谷 2577 [ZJOI2005]午餐——序列dp
题目:https://www.luogu.org/problemnew/show/P2577 可以从只有一个窗口的角度思考出一个贪心结论.就是应当按吃饭时间(不算打饭时间)从大到小排序.这样交换相邻两 ...
- C#编译问题'System.Collections.Generic.IEnumerable' does not contain a definition for 'Where' and no extension method 'Where' accepting a first argument
'System.Collections.Generic.IEnumerable<string>' does not contain a definiti ...