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 ✨支持一下哦!手动码字,如有错误,欢迎在评论区指正💬~

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

目录
相关文章
|
2天前
|
存储 Java 测试技术
滚雪球学Java(61):从源码角度解读Java Set接口底层实现原理
【6月更文挑战第15天】🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
11 1
滚雪球学Java(61):从源码角度解读Java Set接口底层实现原理
|
3天前
|
Java
深入理解 Java 8 函数式接口:定义、用法与示例详解
深入理解 Java 8 函数式接口:定义、用法与示例详解
5 1
|
3天前
|
安全 Java
Java 并发编程详解:Lock 接口及其实现 ReentrantLock
Java 并发编程详解:Lock 接口及其实现 ReentrantLock
11 1
|
4天前
|
Java
JAVA高级部分(接口)
JAVA高级部分(接口)
|
4天前
|
Java
Java动态获取某个接口下所有的实现类对象集合
Java动态获取某个接口下所有的实现类对象集合
10 1
|
4天前
|
JSON Java 数据格式
java读取接口返回的json数据 (二)
java读取接口返回的json数据 (二)
17 5
|
4天前
|
JSON Java 数据格式
java读取接口返回的json数据
java读取接口返回的json数据
17 5
|
4天前
|
Java
Java基础7-一文搞懂抽象类和接口,从基础到面试题,揭秘其本质区别(二)
Java基础7-一文搞懂抽象类和接口,从基础到面试题,揭秘其本质区别(二)
9 0
|
4天前
|
设计模式 Java 内存技术
Java基础7-一文搞懂抽象类和接口,从基础到面试题,揭秘其本质区别(一)
Java基础7-一文搞懂抽象类和接口,从基础到面试题,揭秘其本质区别(一)
13 0
|
5天前
|
Java 开发者
Java中的Lambda表达式和函数式接口
在Java 8中,Lambda表达式的引入为Java带来了前所未有的便利性。它允许开发者以更简洁、更高效的方式处理集合、线程等。本文将深入探讨Lambda表达式的概念、用法以及与函数式接口的关系,帮助读者更好地理解和应用这一特性。