Java详细讲解不同版本的接口语法和抽象类与接口的区别

目录
  • 什么是接口?
  • 接口的语法: (JDK7.0)
  • 接口的语法: (JDK8.0)
  • 接口的语法: (JDK9.0)—(私有方法)
  • 接口的分类
    • 常量接口:
    • 空接口:
    • 函数式接口:

什么是接口?

说到接口,USB大家肯定不陌生~
接口是一种标准、规范.
注意:接口一旦制定好,使用者和实现者都必须遵循的标准.

接口的语法: (JDK7.0)

(1) 关键字:interface 
(2) 语法:  interface 接口名{} 
(3) 接口编译之后会生成对应的 .class文件 
(4) 接口不能创建对象,但是可以声明引用 接口名 引用名; 
(5) 接口中没有构造方法 
(6) 接口中所有的属性都是公开的静态常量
    (默认被:public static final) 
(7) 接口中所有的方法都是公开抽象方法
    (默认被:public abstract修饰) 
    注意:接口中的方法默认访问权限为public; 
         类中方法默认访问权限是 default

接口的实现类:

语法:

class 类名 implements 接口名{}

注意:实现的关键字为 implements 
(1) 如果实现类不想成为抽象类,必须覆盖(实现)接口中所有的方法 
(2) 实现类中覆盖接口中的方法时,访问权限必须是public
使用:
(1) 接口类型的引用中,只能存储对应实现类的对象,体现多态的应用 
(2) 语法:

接口名 引用名 = new 实现类类名(实参);

注意:一个接口可以定义多个实现类

接口的继承性:(很重要哦~)

接口与接口之间为多继承的关系

(1) 一个接口可以同时继承多个父接口

(2) 语法:

interface 接口名 extends 父接口名1,父接口名2{}

类与接口之间为多实现的关系

(1) 一个类可以同时实现多个接口

(2) 语法:

class 类名 implements 接口名1,接口名2{}

(3) 一个类同时实现多个接口,不想成为抽象类,则需要实现所有接口中所有方法 
    (包括所实现接口的父接口中的方法)

一个类实现多个接口的同时还有可以继承一个类

(1) 如果一个类继承一个父类同时实现多个接口,必须先继承,再实现

(2) 语法:

class 类名 extends 父类名 implements 父接口1,父接口2{}

注意:必须先 extends ,再 implements

类与类之间存在:单继承------extends

类与接口之间存在:多实现------implements

接口与接口之间存在:多继承------extends

接口的影响:

1.由于接口之间为多继承的关系,同时类与接口之间是多实现的关系,所以让多态更加多元化和复杂
2.如果强制类型转换的双方只要有一方为接口类型,则编译一定通过,运行分以下两种情况:
  a.如果转换的引用中存储的实际对象类型是要转换类型的一种,运行通过 
  b.如果转换的引用中存储的实际对象类型不是要转换的一种,编译通过,但是运行报错,错误信息:
    Java.lang.ClassCastException(类型转换异常)

接口的语法: (JDK8.0)

(1) 默认方法:

a. public default 返回值类型 方法名(形参列表){ 
            // 方法的实现部分 
       }

b. 注意:接口中方法被 default修饰代表,此方法允许带有方法实现部分 
    c. 默认方法访问权限 为 public 
    d. 默认方法允许被覆盖,但是覆盖时访问修饰符为 public

(2) 静态方法:

a. public static 返回值类型 方法名(形参列表){ 
            // 方法的实现部分 
       }

b. 接口中静态方法访问权限是public

接口的语法: (JDK9.0)—(私有方法)

(1) 接口中从9.0开始,方法可以被 private修饰

(2) 语法:

private 返回值类型 方法名(形参列表){ 
        // 方法的实现 
    }

(3) 私有方法供接口内部使用,通常将其他方法的共同逻辑部分提取,减少代码冗余

接口的分类

常量接口:

接口中只有属性、没有方法,应用很少

空接口:

通常称为标记接口,接口中没有任何属性和抽象;
例如:IO对象序列化时应用

函数式接口:

接口中有且只有一个抽象方法(静态和默认不关注),广泛应用在Lambda表达式中

抽象类和接口的区别? (要牢记哦~)

到此这篇关于Java详细讲解不同版本的接口语法和抽象类与接口的区别的文章就介绍到这了,更多相关Java 接口内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 解析JavaSe的抽象类和接口

    目录 1. 抽象类和抽象方法 2. 相关面试题 1.抽象类必须要有抽象方法吗? 2.普通类和抽象类有哪些区别? 3.抽象类能使用 final 修饰吗? 3. 接口 3.1 接口中的常量 3.2 接口中的方法 3.2.1 接口中的普通方法 3.2.2 接口中的静态方法 3.2.3 接口中的默认方法 3.3 接口中的接口和枚举类 3.4 接口和抽象类 总结 1. 抽象类和抽象方法 抽象方法和抽象类必须使用abstract修饰符来定义,有抽象方法的类只能被定义成抽象类,抽象类里可以没有抽象方法.抽象方

  • Java 超详细讲解抽象类与接口的使用

    目录 一.抽象类 1.抽象类的语法 2.抽象类的特性 3.抽象类的作用 二.接口 1.接口的概念 2.接口使用 3.接口特性 4.实现多个接口 5.接口间的继承 6.常用的接口 (1)Comparable接口 (2)Cloneable接口 三.Object类 一.抽象类 在Java中,如果一个类被abstract修饰称为抽象类,抽象类中被abstract修饰的方法称为抽象方法,抽象方法不用给出方法体. 1.抽象类的语法 //抽象类:被abstract修饰的类 public abstract cl

  • 一起来了解Java的态和抽象类

    目录 多态: 抽象类: 总结 多态: 我们知道Java的三大特性:封装.继承.多态.前两个之前在Java入门(六)已经讲到,现在来讲多态这个特性. 什么是多态? 多态顾名思义即为多种形态的意思 Java中多态的含义: 1.发送消息给某个对象,让这个对象自行决定采用哪种行为响应这个消息 2.子类对象的引用赋值给父类引用变量来实现动态的方法调用 Java中形成多态的前提: 1.继承 2.父类方法的重写 3.向上转型 我对多态的解释: 比如我们,是人,也是学生,也是年轻人,我可以用人的身份去做事情,也

  • Java 深入浅出解析面向对象之抽象类和接口

    目录 抽象类 声明抽象类 声明抽象方法 案例 使用规则 接口 声明接口 案例 接口特性 抽象类和接口的区别 抽象类 java语言,声明类时 abstract class Db{} 说明Db类为抽象类. java语言中,抽象方法是说没有方法的实现(方法体)此方法为抽象方法,只有抽象类和接口中才可以有抽象方法. 声明抽象类 声明抽象类很简单,加个abstract关节字就行. public abstract class AA { } 声明抽象方法 在抽象类中声明一个抽象方法,抽象方法没有方法体,就是说

  • Java中的抽象类和接口你了解吗

    目录 抽象类 什么是抽象类? 抽象类属于什么类型? 抽象类怎么定义? 抽象类是干什么的? 什么是抽象方法? 非抽象类继承抽象类 抽象类总结 接口 接口的基础语法 接口的实现 接口和多态联合使用 继承和实现同时出现 接口在开发中的作用 类型和类型之间的关系 总结 抽象类 什么是抽象类? 类和类之间有共同特征,将这些共同特征提取出来进一步抽象,就形成了抽象类.由于类是不存在的,所以抽象类无法创建对象. 抽象类属于什么类型? 抽象类也属于引用数据类型. 抽象类怎么定义? [修饰符列表] abstrac

  • Java入门基础之抽象类与接口

    目录 一.抽象类 1.什么是抽象类 2.语法规则 3.抽象类的作用 二.接口 1.什么是接口 2.语法规则 3.实现多个接口 4.接口之间的继承 三.接口的使用实例 1. Comparable 接口 2.Comparator接口 3.Clonable接口 四.总结 一.抽象类 1.什么是抽象类 首先我们来回顾一下上一篇文章提到的一个例子:打印图形 class Shape { public void draw() { // 啥都不用干 } } class Cycle extends Shape {

  • Java中抽象类和接口介绍

    目录 1.抽象类 1.1 什么是抽象类? 1.2 抽象类属于什么类型? 1.3 抽象类怎么定义? 1.4 抽象方法 2.接口 2.1 关于接口 2.2 接口怎么定义? 2.3 接口基础语法 总结 1.抽象类 1.1 什么是抽象类? 1.1.1 对抽象类的理解 1.1.2 关于抽象类 类与类之间具有共同特征,将这些共同特征提取出来,形成的就是抽象类: 类本身是不存在的,属于抽象类无法创建对象[无法实例化]: 抽象类是用来被子类继承的: finial关键字和abstract关键字不能同时出现: 抽象

  • Java十分钟精通多态与抽象类的使用与原理

    我们知道Java的三大特性:封装.继承.多态.前两个之前在Java入门(六)已经讲到,现在来讲多态这个特性. 什么是多态? 多态顾名思义即为多种形态的意思 Java中多态的含义: 发送消息给某个对象,让这个对象自行决定采用哪种行为响应这个消息 子类对象的引用赋值给父类引用变量来实现动态的方法调用 Java中形成多态的前提: 继承 父类方法的重写 向上转型 我对多态的解释: 比如我们,是人,也是学生,也是年轻人,我可以用人的身份去做事情,也可以用学生的身份去买学生票,也可以用年轻人的身份做公益,这

  • Java抽象类和接口使用梳理

    目录 抽象类 抽象方法 抽象类三大原则 接口 接口使用原则 JDK两大内置接口 java.lang.Comparable 比较接口 java.lang.Cloneable 克隆接口 对象的深浅拷贝 抽象类和接口的区别 抽象类 什么是抽象类呢?在现实生活中,我们说“人类”,我们无法对应到具体某个人,同样的,“动物类”.“图形类”这些无法映射到具体的对象的类就是抽象类. 抽象类是普通类的超集,意思就是普通类有的抽象类也有,只是它比普通类多了一些抽象方法而已.这些抽象方法可以有一个,也可以有多个. 它

  • Java详细讲解不同版本的接口语法和抽象类与接口的区别

    目录 什么是接口? 接口的语法: (JDK7.0) 接口的语法: (JDK8.0) 接口的语法: (JDK9.0)—(私有方法) 接口的分类 常量接口: 空接口: 函数式接口: 什么是接口? 说到接口,USB大家肯定不陌生~接口是一种标准.规范.注意:接口一旦制定好,使用者和实现者都必须遵循的标准. 接口的语法: (JDK7.0) (1) 关键字:interface (2) 语法:  interface 接口名{} (3) 接口编译之后会生成对应的 .class文件 (4) 接口不能创建对象,但

  • Java详细讲解包的作用以及修饰符的介绍

    目录 1.包 1.包的三大作用 2.包的基本语法 3.包的本质 4.包的命名规则 5.包的命名规范 6.常用的包 7.注意事项和使用细节 2.访问修饰符 1.4种访问修饰符的访问范围 2.使用注意事项 3.具体实例说明 1. 同类 2. 同包 3. 不同包子类 4. 不同包 1.包 1.包的三大作用 区分相同名字的类 当类很多时,可方便管理 控制访问范围 2.包的基本语法 package abc.www; 3.包的本质 实际上就是创建不同的文件夹/目录保存类文件 4.包的命名规则 只能包含数字,

  • Java详细讲解IO流的Writer与Reader操作

    目录 接口连接 一.Writer方法 二.Reader方法 接口连接 public static void main(String[] args) throws Exception io流的所有方法都需要链接他们的接口父类,Exception. 一.Writer方法 方法引入: Writer Writer = new FileWriter("D:\\java制作\\高级特性\\src\\com\\ytzl\\第二章\\demo4\\io流\\two\\FileWriter方法.txt"

  • Java详细讲解异常Exception的处理

    目录 1.异常介绍 2.常见的运行时异常 1.空指针异常 2.数学运算异常 3.数组下标越界异常 4.类型转换异常 5.数字格式不正确异常 1.异常介绍 基本概念 程序执行中发生的不正常情况称为异常.(语法错误和逻辑错误不是异常). package com.demo; /** * @version 1.0 * @auther Demo龙 */ public class exception01 { public static void main(String[] args) { int num1

  • Java 详细讲解分治算法如何实现归并排序

    目录 1.什么是分治算法 分治法 基本思想 2.分治算法的体现--归并排序 归并排序 基本思想 3.代码实现 1.什么是分治算法 分治法 分治法,字面意思是"分而治之",就是把一个复杂的1问题分成两个或多个相同或相似的子问题,再把子问题分成更小的子问题直到最后子问题可以简单地直接求解,原问题的解即子问题的解的合并,这个思想是很多高效算法的基础,例如排序算法(快速排序,归并排序),傅里叶变换(快速傅里叶变换)等. 基本思想 分治法的基本思想:将一个难以直接解决的大问题,分割成一些规模较小

  • Java 详细讲解用堆解决Top-k问题

    目录 1.什么是堆? 堆结构 大根堆 VS 小根堆 大根堆(最大堆) 小根堆(最小堆) 优先级队列(PriorityQueue) 2.top-k问题解决思路 要解决 top-k 问题,我们应该先熟悉一种数据结构 - 堆(优先级队列),已经了解的朋友可以跳过哦. 1.什么是堆? 堆结构 堆其实就是一种二叉树,但是普通的二叉树是以链式结构进行储存数据的,而堆是以数组进行顺序存储数据的.那么什么样的二叉树才适合用顺序存储的方式呢? 我们假设一颗普通的二叉树可以用数组存储,那么就可以得到如下结构: 我们

  • Java 详细讲解线程安全与同步附实例与注释

    目录 线程安全问题 实例: 存钱取钱问题 买票问题 线程安全问题 分析问题 解决方案 线程同步 同步语句 synchronize(obj)的原理 同步方法 同步方法的本质 线程安全问题 多个线程可能会共享(访问)同一个资源 比如访问同一个对象,同一个变量,同一个文件 当多个线程访问同一块资源时,很容易引发数据错乱和数据安全问题,称为线程安全问题 什么情况下会出现线程安全问题 多个线程共享同一个资源 且至少有一个线程正在执行写的操作 实例: 存钱取钱问题 分别有存钱和取钱2个线程 存钱      

  • Java 详细讲解线程的状态及部分常用方法

    可以通过 Thread.getState 方法获得线程的状态(线程一共有 6 种状态) NEW(新建)new:尚未启动 RUNNABLE(可运行状态)runnable:正在 JVM 中运行:或者正在等待操作系统的其他资源(比如处理器) //有些编程语言会把RUNNABLE分成2种情况//1.running//2.ready//以上2种在Java中都属于RUNNABLE BLOCKED(阻塞状态) blocked:正在等待监视器锁(内部锁) WAITING(等待状态) waiting:在等待另一个

  • Java 详细讲解线程的状态及部分常用方法

    可以通过 Thread.getState 方法获得线程的状态(线程一共有 6 种状态) NEW(新建)new:尚未启动 RUNNABLE(可运行状态)runnable:正在 JVM 中运行:或者正在等待操作系统的其他资源(比如处理器) //有些编程语言会把RUNNABLE分成2种情况//1.running//2.ready//以上2种在Java中都属于RUNNABLE BLOCKED(阻塞状态) blocked:正在等待监视器锁(内部锁) WAITING(等待状态) waiting:在等待另一个

  • Java详细讲解分析双指针法的使用

    目录 前言 1.判断链表是否有环 2.查找链表中间的元素 3.奇偶排序前奇后偶 4.删除排序链表的重复元素 5.三数之和 6.分割链表 7.合并两个有序的数组 8.两数之和—输入有序数组 9.长度最小的子数组 10.排序链表 前言 通常用在线性的数据结构中,比如链表和数组. 指针其实就是数据的索引或者链表的结点.两个指针朝着左右两个方向移动,直到满足搜索条件. 双指针可分为同向双指针.异向双指针.快慢指针.滑动窗口.根据需求选择双指针的模型,比如 删除数组或链表中重复的元素,同向双指针(线性表前

随机推荐