Java基础:接口

1|0Java基础:接口


1|1接口

  • 接口(interface),在 Java 编程语言中是一个抽象类型,是抽象方法的集合,接口通常以 interface 来声明。一个类通过继承接口的方式,从而来继承接口的抽象方法

  • 接口关键字 interface ,接口实现关键字 implements

  • 区别:

    • 普通类:只有具体实现
    • 抽象类:有具体实现和规范(抽象方法)
    • 接口:只有规范,接口无法自己写方法
  • 接口特性:

    • 接口中所有定义的方法都是抽象的,默认:public abstract

    • 接口中所有定义的属性都是常量,默认:public static final

    • 接口中的方法是不能在接口中实现的,只能由实现接口的类来实现接口中的方法

1|0接口与类相似点:

  • 一个接口可以有多个方法
  • 接口文件保存在 .java 结尾的文件中,文件名使用接口名
  • 接口的字节码文件保存在 .class 结尾的文件中
  • 接口相应的字节码文件必须在与包名称相匹配的目录结构中

1|0接口与类的区别:

  • 接口不能用于实例化对象
  • 接口没有构造方法
  • 接口中所有的方法必须是抽象方法
  • 接口不能包含成员变量,除了 static 和 final 变量
  • 接口不是被类继承了,而是要被类实现
  • 接口支持多继承

1|0抽象类和接口的区别

  • 抽象类中的方法可以有方法体,就是能实现方法的具体功能,但是接口中的方法不行
  • 抽象类中的成员变量可以是各种类型的,而接口中的成员变量只能是 public static final 类型的
  • 接口中不能含有静态代码块以及静态方法(用 static 修饰的方法),而抽象类是可以有静态代码块和静态方法
  • 一个类只能继承一个抽象类,而一个类却可以实现多个接口
  • 语法:

    [可见度] interface 接口名称 [extends 其他的接口名] { // 声明变量 // 抽象方法 }
  • 使用示例:

    • 接口1:
    //interface 定义的关键字,接口都需要有实现类 public interface UserService { //常量 默认:public static final int age = 99; //接口中所有定义的方法其实都是抽象的 默认:public abstract void add(String name); void delete(String name); void update(String name); void query(String name); }
    • 接口2:
    public interface TimeService { void timer(); }
    • 实现类:
    //类 可以实现接口 implements 接口 //实现了接口的类,就需要重写接口的方法 //多继承~ 利用接口实现多继承~ public class UserServiceImpl implements UserService,TimeService { @Override public void add(String name) { } @Override public void delete(String name) { } @Override public void update(String name) { } @Override public void query(String name) { } @Override public void timer() { } }

Note:

接口的作用:
1.约束
2.定义一个方法,让不同的人实现
3.方法默认:public abstract
4.常量默认:public static final
5.接口不能被实例化,因为接口中没有构造方法
6.implements可以实现多个接口
7.必须要实现接口中的所有方法
8.接口是隐式抽象的,当声明一个接口的时候,不必使用abstract关键字


__EOF__

本文作者userName
本文链接https://www.cnblogs.com/dt746294093/p/14650466.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   D..T  阅读(81)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· DeepSeek在M芯片Mac上本地化部署
点击右上角即可分享
微信分享提示