当前位置: 首页 > news >正文

Java的接口

一、接口的概念

1.接口:是一种标准,接口的实现者和使用者都必须遵循的约定。抽类是一种特殊的类,而接口是

一种特殊的抽象类。虽然接口不叫类,但是接口在使用中的很多性质和类之间的继承关系相似。


2.Java 语言中的接口也有同样的含义。接口是一套标准,用来规范实现该接口的所有类的特征和

行为。接口比抽象类更纯粹,抽象类中成员变量的值可以被修改,也可以不被修改,而接口中只能

定义常量,并且必须对该常量赋初值,且不能被修改;抽象类中可以定义抽象方法,也可以定义普

通方法,但是接口中定义的方法必须全是抽象方法。


3.接口的基本语法:

[修饰符] interface  接口名 [extends 父接口列表]{

[常量声明;]

[抽象方法声明;]

}

①关键字:interface

② 所有的属性都是公开、静态、常量

③所有的方法都是公开、抽象方法

④没有构造方法,不能参与创建对象的过程,可以声明引用

⑤ 修饰符通常是访问权限修饰符,可以有两种:publie 和默认。如果接口是用 public修饰时,则源

文件的名字必须和接口名一致,而且一个源文件中最多只能定义一个 public接口。

③ extends 父接口列表可选项,父接口和父接口间用逗号分隔。

④ 接口中可以为空,但是有成员时,该成员必须是常量或抽象方法。


4、①创建接口

        创建接口的步骤和创建类类似,首先选择项目名称,之后右击,在弹出的快捷菜单中选项

        New选项,再选择 interface选项,然后填写接口名,选择访间权限修饰符及父接口,最后  

        单击“ 完成”按钮完成接口的创建。

      ② 接口中的常量

        接口中定义的变量前默认有3个修饰符public、static 和final。因为有final 修饰符,所以该变量

        在声明时必须赋初值,并且在程序运行中不容许改变变量的值,该变量也被称为常量。

      ③接口中的方法

         接口中定义的方法默认有 public、abstract 两个修饰符

         接口中的常量和方法前,默认修饰符可以定义,也可以不定义。当修饰符未定义时,系

         统会自动按要求添加。


二、类与接口的实现

类和接口之间是实现关系,用implements 关键字表示。实现关系是变相的继承关系,满足继承

关系的所有规则,因此接口可以作为特殊的父类出现。

实现关系的规则如下:

  [修饰符]   子类[extends 父类][implements  接口列表]{

                       类体;

     }

说明:类之间是单继承关系,extends 父类部分是可选项,如果没有该选项时,默认继承自 Object

类。

     子类从父类中如果无法获得某种功能,可以通过实现接口的实现让类中具有该种功能,实现关

系为类功能的拓展提供了一种灵活的方式。接口中的方法都是抽象方法,当类实现接口时,需要对

接口中的抽象方法进行方法实现(方法重写),否则这个类就必须定义成抽象类,抽象类不能实例

化。


三、访问接口常量

接口中定义的变量,因为系统会默认添加 public、static和 final 3 个修饰符,也被认为是常量。

接口中的常量访问方式有3种,分别是:

① 接口名.常量。

② 类名.常量(类和接口之间必须有实现关系)。

③ 对象名.常量


四、接口与接口的关系

1.接口和接口之间是多继承关系,即一个子接口可以有多个父接口,当子接口继承父接口时,会自

   动继承父接口中所有的常量和抽象方法。接口之间的关系规则定义如下:

    [修饰符]interface 子接口 [extends 父接口列表]{ }


五、小结

1.继承(extends)

①单继承:类与类之间

②多继承:接口与接口之间

2.实现(implements)

①多实现:类与接口之间

②先继承后实现:类名  extends 类名 implements  接口1,接口2{}

3.


六、代码

1.

package demo;
public class Test1{public static void main(String[] args){System.out.println(MyInter.a);System.out.println(MyInter.b);MyInter mi=new MyClass();mi.ma();mi.mb();}
}
//接口 父类型
interface MyInter{public static final int a=5;//公开静态常量int b=90;//默认被public static final int修饰public abstract void ma();void mb();
}//实现类 子类型
class MyClass implements MyInter{public void ma(){System.out.println("ma....");}public void mb(){System.out.println("mb....");}
}

2.

package demo;
public class Test2{public static void main(String[] args){}
}interface IA{void ma();
}interface IB{void mb();	
}//接口与接口之间 为 多继承
interface IC extends IA,IB{void mc();
}interface ID{void md();	
}//类可以同时实现多个接口;多实现
class MyClass implements ID,IC {public void md(){}public void mc(){}public void ma(){}public void mb(){}}class ClassA{public void me(){}
}

相关文章:

  • 阿帕奇基金会软件授权与公司贡献者许可协议(中英双语版)
  • 基于CATIA轴系的最小边界曲面自动化生成技术深度解析
  • 力扣的SQL
  • 搭建基于 Prometheus、Grafana 和 Alertmanager 的监控告警系统
  • 「Linux文件及目录管理」文件内容的显示和处理类命令
  • 揭开MongoDB的神秘面纱:从陌生到初识
  • 如何修改PyCharm的界面颜色(超详细)
  • 手写简版React-router
  • 2025ICRA 最佳论文解读:麻省理工PolyTouch:一种多模态触觉传感器以及基于触觉扩散策略的接触丰富操作方法
  • 【学习笔记】深入理解Java虚拟机学习笔记——第9章 类加载及执行子系统的案例与实战
  • C语言进阶:深度解剖数据在内存中的存储(浮点型在内存中的存储)
  • Linux系统firewall-offline-cmd命令在企业网络安全防护中的应用案例分析
  • 2.RMII的时钟模式
  • Python训练营打卡 Day54
  • 【LangChain】5 评估
  • WebAssembly 2.0:超越浏览器的全栈计算革命
  • 修改Rocky Linux文件夹颜色
  • LLM对话框项目 EventSource封装和MessageServiceClass流式展示封装
  • Spring Boot的Security安全控制——应用SpringSecurity!
  • 关于脉冲功率技术的认识
  • 公司网站做的很烂/宁波网站推广公司价格
  • 免费虚拟空间网站/seo网站优化培训
  • 知名企业门户网站建设服务公司/产品宣传推广策划
  • 一个网站的建设方案/云搜索系统
  • 宝鸡做网站公司/网络推广平台排名
  • 南海做网站公司/兰州seo