Java 接口(Interface)

简介: Java接口是抽象类型,定义方法规范而无实现。接口通过`interface`关键字定义,包含方法签名和常量。类可实现多个接口,实现接口必须覆盖所有方法。接口常用于多态、回调和模块化。一个类可继承一个抽象类并实现多个接口。接口中的常量默认为`public static final`。注意接口不能实例化,且多个接口同名方法可通过实现类重写避免冲突。接口继承多个接口时,规范冲突则不允许。

@[TOC]

接口(Interface)

1、接口是什么

Java接口是一种抽象类型,它定义了一组方法的规范,但没有具体的实现。接口可以被类实现,实现类必须实现接口中定义的所有方法。以下是Java接口的一些特点和用法:
接口的定义:使用关键字interface来定义接口,接口中可以包含方法的声明、常量的定义以及默认方法和静态方法的实现。
方法规范:接口中的方法只有方法签名,没有方法体。实现类必须提供方法的具体实现。
多继承:一个类可以实现多个接口,实现类可以获得多个接口的方法规范。
接口与抽象类的区别:接口只能定义方法规范,而抽象类可以包含方法的实现。一个类可以同时实现多个接口,但只能继承一个抽象类。
接口的应用:接口常用于定义回调函数、实现多态性、模块化程序设计等场景。通过接口,可以实现不同类之间的松耦合关系,提高代码的可维护性和扩展性。

2、接口定义

package com.demo1.dy04_interface;

public interface A {
   
    //成员常量
    String name="李四";
    //抽象方法
    void test();
}

3、接口的实现

1.接口的实现是通过定义接口实现类加以实现的。
2.接口实现类中==必须重写接口中定义的方法==。
3.一个接口实现类可以实现多个接口

package com.ham.demo1.dy04_interface;

public class D implements A {
   

    @Override
    public void test2() {
   
        System.out.println("444");
    }
}

4、接口常量

接口当中也可以定义”成员变量“,但是必须使用public static final 三个关键字进行修饰。
从效果上看,这其实就是接口的【常量】。
格式:
public static final 数据类型 常量名称 = 数据值;
一旦使用final关键字进行修饰,说明不可改变。

接口当中的常量,可以省略public static final,注意不写也照样是这样。
接口当中的常量,必须进行赋值,不能不赋值。
接口中常量的名称,使用完全大写的字符,使用下划线进行分割(推荐)

5、接口与继承

接口与继承是面向对象编程中两个重要的概念,它们之间存在一定的关系。
继承是一种机制,它允许一个类(称为子类或派生类)继承另一个类(称为父类或基类)的属性和方法。通过继承,子类可以重用父类的代码,并且可以在此基础上添加新的属性和方法,或者修改已有的属性和方法。继承可以实现代码的重用和层次化的组织。
接口是一种规范或契约,它定义了一个类应该具有的方法和属性,但不提供具体的实现。接口只定义了方法的签名(名称、参数和返回类型),而没有具体的实现代码。一个类可以实现一个或多个接口,通过实现接口中定义的方法,来达到满足接口规范的目的。
口与继承的关系在于,一个类可以同时继承一个父类并实现一个或多个接口。通过继承父类,子类可以获得父类的属性和方法,并且可以通过重写父类的方法来实现自己的逻辑。通过实现接口,类必须提供接口中定义的方法的具体实现,以满足接口规范。
总结一下:
继承是一种类与类之间的关系,子类可以继承父类的属性和方法
接口是一种类与接口之间的关系,类通过实现接口来满足接口规范

6、注意事项

接口不能创建对象
2、一个类实现多个接口,多个接口的规范不能冲突
2、一个类实现多个接口,多个接口中有同样的静态方法不冲突。
3、一个类继承了父类,同时又实现了接口,父类中和接口中有同名方法,默认用父类的。
4、一个类实现了多个接口,多个接口中存在同名的默认方法,可以不冲突,这个类重写该方法即可。
5、一个接口继承多个接口,是没有问题的,如果多个接口中存在规范冲突则不能多继承。

🎉写在最后

🍻伙伴们,如果你已经看到了这里,觉得这篇文章有帮助到你的话不妨点赞👍或 Star ✨支持一下哦!手动码字,如有错误,欢迎在评论区指正💬~

你的支持就是我更新的最大动力💪~

目录
相关文章
|
3天前
|
Java 开发者
Java 8新特性之Lambda表达式与函数式接口
【7月更文挑战第59天】本文将介绍Java 8中的一个重要新特性——Lambda表达式,以及与之密切相关的函数式接口。通过对比传统的匿名内部类,我们将探讨Lambda表达式的语法、使用方法和优势。同时,我们还将了解函数式接口的定义和用途,以及如何将Lambda表达式应用于函数式编程。
|
2天前
|
Java
在Java多线程领域,精通Lock接口是成为高手的关键。
在Java多线程领域,精通Lock接口是成为高手的关键。相较于传统的`synchronized`,Lock接口自Java 5.0起提供了更灵活的线程同步机制,包括可中断等待、超时等待及公平锁选择等高级功能。本文通过实战演练介绍Lock接口的核心实现——ReentrantLock,并演示如何使用Condition进行精确线程控制,帮助你掌握这一武林秘籍,成为Java多线程领域的盟主。示例代码展示了ReentrantLock的基本用法及Condition在生产者-消费者模式中的应用,助你提升程序效率和稳定性。
10 2
|
2天前
|
Java 开发者
在 Java 多线程编程中,Lock 接口正逐渐取代传统的 `synchronized` 关键字,成为高手们的首选
在 Java 多线程编程中,Lock 接口正逐渐取代传统的 `synchronized` 关键字,成为高手们的首选。相比 `synchronized`,Lock 提供了更灵活强大的线程同步机制,包括可中断等待、超时等待、重入锁及读写锁等高级特性,极大提升了多线程应用的性能和可靠性。通过示例对比,可以看出 Lock 接口通过 `lock()` 和 `unlock()` 明确管理锁的获取和释放,避免死锁风险,并支持公平锁选择和条件变量,使其在高并发场景下更具优势。掌握 Lock 接口将助力开发者构建更高效、可靠的多线程应用。
8 2
|
3天前
|
Java 开发者
Java中的接口和抽象类
Java中的接口和抽象类
15 3
|
2天前
|
设计模式 Oracle Java
一不小心掉入了 Java Interface 的陷阱
本文作者记录了一次代码中的踩坑经历,一行很简单的代码在不同的场景下可能也暗藏玄机,希望大家看完都有所收获。
|
3天前
|
Java
Java接口
Java接口
10 1
|
5天前
|
Java 应用服务中间件 HSF
Java应用结构规范问题之AllLoggers接口获取异常日志的Logger实例的问题如何解决
Java应用结构规范问题之AllLoggers接口获取异常日志的Logger实例的问题如何解决
|
4天前
|
Java Spring 容器
Java获取接口的所有实现类方法
这篇文章介绍了在Java中获取接口所有实现类的方法,包括使用JDK的ServiceLoader(SPI机制)和Spring Boot中的@Autowired自动注入及ApplicationContextAware接口两种方式。
23 1
|
8天前
|
Java 开发者 C++
下一篇
云函数