【JavaSE】Java基础语法(十九):接口新特性

简介: 1. 接口组成更新概述常量:接口可以定义全局常量,使用关键字public static final修饰。抽象方法:接口中可以定义抽象方法,使用关键字public abstract修饰。实现类必须实现接口的所有抽象方法。

1. 接口组成更新概述

常量:接口可以定义全局常量,使用关键字public static final修饰。

抽象方法:接口中可以定义抽象方法,使用关键字public abstract修饰。实现类必须实现接口的所有抽象方法。

默认方法(Java8):接口可以包含默认方法(default method),使用关键字default修饰。默认方法有默认的实现,实现类可以直接调用默认方法,也可以选择重写它。


静态方法(Java8):接口中还可以定义静态方法(static method),使用关键字public static修饰。静态方法只能被接口本身调用,并且不能被实现类重写或继承。


私有方法(Java9):可以有用私有方法。

2. 接口中默认方法

  • 格式
    public default 返回值类型 方法名(参数列表) { }
  • 作用
    解决接口升级的问题
  • 范例
public default void show3() {
}
  • 注意事项
  • 默认方法不是抽象方法,所以不强制被重写。但是可以被重写,重写的时候去掉default关键
  • public可以省略,default不能省略
  • 如果实现了多个接口,多个接口中存在相同的方法声明,子类就必须对该方法进行重写


3. 接口中静态方法

  • 格式
    public static 返回值类型 方法名(参数列表) { }
  • 范例
public static void show() {
}
  • 注意事项
  • 静态方法只能通过接口名调用,不能通过实现类名或者对象名调用
  • public可以省略,static不能省略

4. 接口中私有方法


私有方法产生原因

Java 9中新增了带方法体的私有方法,这其实在Java 8中就埋下了伏笔:Java 8允许在接口中定义

带方法体的默认方法和静态方法。这样可能就会引发一个问题:当两个默认方法或者静态方法中包

含一段相同的代码实现时,程序必然考虑将这段实现代码抽取成一个共性方法,而这个共性方法是

不需要让别人使用的,因此用私有给隐藏起来,这就是Java 9增加私有方法的必然性


定义格式

格式1

private 返回值类型 方法名(参数列表) { }

范例1

private static 返回值类型 方法名(参数列表) { }

范例2

private static void method() {
}

注意事项

默认方法可以调用私有的静态方法和非静态方法

静态方法只能调用私有的静态方法

相关文章
|
14天前
|
JSON Java Apache
非常实用的Http应用框架,杜绝Java Http 接口对接繁琐编程
UniHttp 是一个声明式的 HTTP 接口对接框架,帮助开发者快速对接第三方 HTTP 接口。通过 @HttpApi 注解定义接口,使用 @GetHttpInterface 和 @PostHttpInterface 等注解配置请求方法和参数。支持自定义代理逻辑、全局请求参数、错误处理和连接池配置,提高代码的内聚性和可读性。
|
4天前
|
Java
在Java中,接口之间可以继承吗?
接口继承是一种重要的机制,它允许一个接口从另一个或多个接口继承方法和常量。
21 1
|
16天前
|
分布式计算 Java API
Java 8引入了流处理和函数式编程两大新特性
Java 8引入了流处理和函数式编程两大新特性。流处理提供了一种声明式的数据处理方式,使代码更简洁易读;函数式编程通过Lambda表达式和函数式接口,简化了代码书写,提高了灵活性。此外,Java 8还引入了Optional类、新的日期时间API等,进一步增强了编程能力。这些新特性使开发者能够编写更高效、更清晰的代码。
28 4
|
15天前
|
Java
java线程接口
Thread的构造方法创建对象的时候传入了Runnable接口的对象 ,Runnable接口对象重写run方法相当于指定线程任务,创建线程的时候绑定了该线程对象要干的任务。 Runnable的对象称之为:线程任务对象 不是线程对象 必须要交给Thread线程对象。 通过Thread的构造方法, 就可以把任务对象Runnable,绑定到Thread对象中, 将来执行start方法,就会自动执行Runable实现类对象中的run里面的内容。
31 1
|
20天前
|
Java 开发者
在Java多线程编程的世界里,Lock接口正逐渐成为高手们的首选,取代了传统的synchronized关键字
在Java多线程编程的世界里,Lock接口正逐渐成为高手们的首选,取代了传统的synchronized关键字
44 4
|
25天前
|
Java
Java基础(13)抽象类、接口
本文介绍了Java面向对象编程中的抽象类和接口两个核心概念。抽象类不能被实例化,通常用于定义子类的通用方法和属性;接口则是完全抽象的类,允许声明一组方法但不实现它们。文章通过代码示例详细解析了抽象类和接口的定义及实现,并讨论了它们的区别和使用场景。
|
存储 算法 Java
Java8语法最佳实践-什么是对象(上)
计算机革命起源机器。编程语言就像是那台机器。它不仅是我们思维放大的工具与另一种表达媒介,更像是我们思想的一部分。语言的灵感来自其他形式的表达,如写作,绘画,雕塑,动画和电影制作。编程语言就是创建应用程序的思想结构。
162 0
Java8语法最佳实践-什么是对象(上)
|
存储 安全 Java
Java8语法最佳实践-什么是对象(下)
计算机革命起源机器。编程语言就像是那台机器。它不仅是我们思维放大的工具与另一种表达媒介,更像是我们思想的一部分。语言的灵感来自其他形式的表达,如写作,绘画,雕塑,动画和电影制作。编程语言就是创建应用程序的思想结构。
98 0
|
8天前
|
Java 开发者
Java多线程编程中的常见误区与最佳实践####
本文深入剖析了Java多线程编程中开发者常遇到的几个典型误区,如对`start()`与`run()`方法的混淆使用、忽视线程安全问题、错误处理未同步的共享变量等,并针对这些问题提出了具体的解决方案和最佳实践。通过实例代码对比,直观展示了正确与错误的实现方式,旨在帮助读者构建更加健壮、高效的多线程应用程序。 ####
|
7天前
|
安全 Java 开发者
Java 多线程并发控制:深入理解与实战应用
《Java多线程并发控制:深入理解与实战应用》一书详细解析了Java多线程编程的核心概念、并发控制技术及其实战技巧,适合Java开发者深入学习和实践参考。
下一篇
无影云桌面