Java接口和类与类之间的关系

限时加码!20+主流AI编程工具免费用 购周边加赠Coding Plan Lite,Claude Code、Cursor等即刻畅享,学习进阶更高效! 阅读详情

什么是接口?

Java接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为

接口的定义语法:

[修饰符] interface 接口名 extends 父接口1,父接口2 {
//常量定义
//方法定义
}

实现接口的定义语法:

class 类名 extends 父类名 implements 接口1,接口2{
//类成员
}

注意事项:

  1. 修饰符:可选参数public,如果省略,则为默认的访问权限;

  2. 接口名:指定接口的名称,默认情况下,接口名必须是合法的Java标示符,一般情况下,要求首字符大写;

  3. extends 父接口名列表:可选参数,指定定义的接口继承于哪个父接口。当使用extends关键字时,父接口名为必选参数。

  4. 方法:接口中的方法只有定义而不能有实现

例如:
第一步,定义接口。

/**
 * USB接口
 */
public interface UsbInterface {
	/**
	 * USB接口提供服务
	 */
	void service();
}

第二步,实现接口。

/**
 * U盘
 */
public class UDisk implements UsbInterface {
	public void service(){
		System.out.println("连接USB口,开始传输数据:");
	}
}
/**
 * USB风扇
 */
public class UsbFan implements UsbInterface {
	public void service(){
		System.out.println("连接USB口,获得电流,风扇开始转动");
	}
}

第三步,测试。

/**
 * 测试USB接口
 */
public class Test {
	public static void main(String[] args) {
		//1.U盘
		UsbInterface ue = new UDisk();
		ue.service();
		//2.USB风扇
		UsbInterface usbFan = new UsbFan();
		usbFan.service();
	}

输出结果:

连接USB口,开始传输数据
连接USB口,获得电流,风扇开始转动

说明:

  1. 接口的命名规则与类相同。如果修饰符是public,则该接口在整个项目中可见;如果省略修饰符,则该接口只在当前包可见。

  2. 接口中可以定义常量,不能定义变量。接口中的属性都会自动用public static
    final修饰,即接口中的属性都是全局静态常量,接口中的常量必须在定义时指定初始值。

  3. 接口中所有方法都是抽象方法

  4. 和抽象类一样,接口也不能实例化,接口中不能有构造方法。

  5. 接口之间可以通过extends实现继承关系,一个接口可以继承多个接口,但接口不能继承类。

  6. 接口的实现类必须实现接口的全部方法,否则必须定义为抽象类。

类与类之间的关系

一、继承关系

继承指的是一个类(称为子类、子接口)继承另外的一个类(称为父类、父接口)的功能,并可以增加它自己的新功能的能力。 在Java中继承关系通过关键字extends明确标识,在设计时一般没有争议性。在UML类图设计中,继承用一条带空心三角箭头的实线表示,从子类指向父类,或者子接口指向父接口。
在这里插入图片描述

二、实现关系

实现指的是一个class类实现interface接口(可以是多个)的功能,实现是类与接口之间最常见的关系。 在Java中此类关系通过关键字implements明确标识,在设计时一般没有争议性。在UML类图设计中,实现用一条带空心三角箭头的虚线表示,从类指向实现的接口

在这里插入图片描述

三、依赖关系

简单的理解,依赖就是一个类A使用到了另一个类B,而这种使用关系是具有偶然性的、临时性的、非常弱的,但是类B的变化会影响到类A。 比如某人要过河,需要借用一条船,此时人与船之间的关系就是依赖。表现在代码层面,为类B作为参数被类A在某个method方法中使用。在UML类图设计中,依赖关系用由类A指向类B的带箭头虚线表示。
在这里插入图片描述
四、关联关系

关联体现的是两个类之间语义级别的一种强依赖关系,比如我和我的朋友,这种关系比依赖更强、不存在依赖关系的偶然性、关系也不是临时性的,一般是长期性的,而且双方的关系一般是平等的。关联可以是单向、双向的。表现在代码层面,为被关联类B以类的属性形式出现在关联类A中,也可能是关联类A引用了一个类型为被关联类B的全局变量。 在UML类图设计中,关联关系用由关联类A指向被关联类B的带箭头实线表示,在关联的两端可以标注关联双方的角色和多重性标记。
在这里插入图片描述

五、聚合关系

聚合是关联关系的一种特例,它体现的是整体与部分的关系,即has-a的关系。此时整体与部分之间是可分离的,它们可以具有各自的生命周期,部分可以属于多个整体对象,也可以为多个整体对象共享。 比如计算机与CPU、公司与员工的关系等,比如一个航母编队包括海空母舰、驱护舰艇、舰载飞机及核动力攻击潜艇等。表现在代码层面,和关联关系是一致的,只能从语义级别来区分。在UML类图设计中,聚合关系以空心菱形加实线箭头表示。
在这里插入图片描述

六、组合关系

组合也是关联关系的一种特例,它体现的是一种contains-a的关系,这种关系比聚合更强,也称为强聚合。它同样体现整体与部分间的关系,但此时整体与部分是不可分的,整体的生命周期结束也就意味着部分的生命周期结束, 比如人和人的大脑。表现在代码层面,和关联关系是一致的,只能从语义级别来区分。在UML类图设计中,组合关系以实心菱形加实线箭头表示。
在这里插入图片描述

总结:
对于继承、实现这两种关系没多少疑问,它们体现的是一种类和类、或者类与接口间的纵向关系。其他的四种关系体现的是类和类、或者类与接口间的引用、横向关系,是比较难区分的,有很多事物间的关系要想准确定位是很难的。前面也提到,这四种关系都是语义级别的,所以从代码层面并不能完全区分各种关系,但总的来说,后几种关系所表现的强弱程度依次为:组合>聚合>关联>依赖。

接口接口之间关系思考 一, 接口 1.接口接口 接口可以继承接口 接口继承接口扩展接口功能。 一个接口可以继承多个接口. interface C extends A, B {}是可以的. 2.接口 一个可以实现多个接口: class D implements A,B,C{} 但是一个只能继承一个,不能继承多个 class B extends A{} 在继承的同时,也可以实现接口: class E extends D implements A,B,C{} 这也正是选择用接口而不是抽象的原因 二, 接口 阅读详情

相关推荐

FPGA不积跬步(目录篇)

说明:为了让您快速找到对您感兴趣的文章,可以通过目录快速查找,节省时间,加油! 1 目录 1)基于FPGA实现PCIE IP功能仿真 2)基于FPGA实现UART接口设计(异步串行通信) 3)基于FPGA实现ADS1675数据采集 4)基于ZYNQ FPGA实现8路ADC数据采集存储(AD7606) 5)基于Xilinx Spartan-7 FPGA实现SMC接口 6)基于FPGA实现DAC8811接口(正弦波) 7)基于FPGA实现SPI接口(配置或通信) 8)基于FPGA实现IIC接口

m0_46498597的博客 568

Java接口关系

Java接口关系

weixin_46602832的博客 875

避坑指南:在Ubuntu 22.04上配置UR5eROS2 Humble真机通信的完整流程

本文详细介绍了在Ubuntu 22.04上配置UR5e机械臂ROS2 Humble真机通信的完整流程,包括环境准备、网络配置、URCap安装、ROS2驱动部署及控制器状态验证等关键步骤。特别针对常见问题如网络连接失败、驱动启动错误等提供了实用解决方案,帮助工程师高效完成UR5eROS2的集成工作。

weixin_30790841的博客 439

15. 关系——实现(接口

14. 关系——实现(接口) 1、接口 1.1 接口的引入 Java语言中,的继承只能是单继承。 试想一下,如果一个中的所有方法都是抽象方法,子继承后,需要重写所有方法,但是因为单继承,就不能去继承其他有实际方法的父了。 为了解决这个弊端,Java语言中把一种特殊的抽象定义成一个新的概念,接口,即interface 接口的本质就是一个,不过是一个纯的抽象,就是没有变量,没有具体方法的抽象。 1.2 接口的定义 ​ Java接口是一系列方法的声明,是一些抽象的集合

baidu_41907361的博客 1788

Java中面向对象之接口(interface接口implements实现、接口关系

接口关系:实现关系,可以单实现,也可以多实现,还可以在继承一个的同时实现多个接口(当一个同时实现两个接口时,且两个接口中有同名的方法时,中只需要重写一次同名的方法)由于实现接口必须重写所有抽象方法,所以当接口中添加新方法时,子必须重写方法,否则代码直接报错,直接无法运行,因为在工作中,在还没有重写方法的情况下,不能使它直接报错,所以有没有一种方法使他默认不是抽象方法。接口关系:①关系:继承关系,只能单继承,不能多继承,但是可以多层继承。

Jackmat的博客 3101

Java接口接口之间关系

接口接口之间关系 继承关系 可以多继承,并且可以多层继承 注意: 1.如果多个父接口中有同名的抽象方法,那么子接口只需要实现一次即可 2.如果多个父接口中有同名的默认方法,那么子接口必须重写默认方法,必须要加default关键字3.如果多个父接口中有同名的静态方法,那么无须理会,因为静态方法只能供接口使用 4.如果多个父接口中有同名的私有方法,那么无须理会,因为私有方法只能本接口使...

weixin_30765505的博客 392

Java接口之间关系

1、之间是继承关系,只能单继承,不能多继承,但是可以多层继承。2、接口之间是实现关系,可以单实现,也可以多实现;还可以在继承一个的同时,实现多个接口。实现多个接口的时候需要重写里面所有的抽象方法。3、接口接口直接是继承关系,而且可以单继承,也可以多继承。如果实现类,实现的是最下面的子接口的话,那么就需要重写这个接口体系所有的抽象方法。

qq_39921135的博客 1657

Java-Finalize(GC)接口之间关系

关于java中的toString方法 /* 关于 object中的 tostring方法 sun在 object中设计 tostring方法的目的:返回java对象的字符串的表示形式 在现实开发中, object里边的 tostring方法已经不够用了 object的 tostring方法实现的结果不满意object中的 tostring方法就是要重写的 sun是...

dibu3564的博客 136

java接口接口的特点,接口的成员特点,接口之间关系

1.接口 概论:接口就是一种公共的规范标准,只要符合规范标准,大家都可以通用。java中的接口更多的体现在对行为的抽象。 2.接口的特点 package java_learn; /* 定义一个接口JumpPing: 接口的特点: 1)接口用interface修饰,即public interface 接口名{}; 2)实现接口用implements表示,即:publ...

Kongjiangezi的博客 529

java 接口之间关系

🤠(10)一个抽象实现一个接口,可以不重写这个抽象方法,但是这个一旦被使用,就也要重写构造方法。并且还要注意的是,一个在实现多个接口的时候,每个接口中的抽象方法都要实现,否则必须设置成抽象。🟥接口是不能直接使用的,必须要有一个来实现该接口,实现接口中的所有抽象方法。java中是不支持多继承的,一个只能有一个父,那么如何实现多个的使用。之间是单继承的,一个可以有多个接口接口接口之间是可以多继承的。它的规范标准就是,里面全部都是由全局常量公共的抽象方法组成,

cuisidong1997的博客 1071

[Java进阶] 、抽象接口之间关系 (继承实现)

1. 之间单继承 2. 接口之间多实现 3. 抽象接口的区别 4. 接口的抽象方法默认方法

花与树 984

Java集合框架中接口之间关系

目录 Java集合框架中接口之间关系 Collection常用方法 Map常用方法 List、Map、Set的应用场景 Java集合框架中接口之间关系 首先,我发现了这样一幅图比较形象的描述 了Java集合框架中接口之间关系: 第一张图(左): Collection继承了Iterable接口。List是链表 ,Queue 是队列, Set...

qq_41185460的博客 1224

java接口关系_java接口之间有什么关系?区别是什么?

java接口之间有什么关系?区别是什么?发布时间:2020-04-22 14:02:36来源:亿速云阅读:608作者:小新java接口之间有什么关系?区别是什么?相信有很多人都不太了解,今天小编为了让大家更加了解java接口,所以给大家总结了以下内容,一起往下看吧。接口(interface)在java语言中就是一个抽象型,但接口并不是一个抽象,是抽象方法的集合,接口通常以inter...

weixin_34145350的博客 834

学习笔记(59):4天速学JAVA面向对象-接口之间关系以及使用

本视频是IT兄弟连推出的一套Java的视频第二部分 本主要内容包括:面向对象基础、面向对象的三大特征封装、继承多态、static关键字、抽象、匿名等技术 ...

158

7、 Java接口之间关系、抽象接口语法上的区别

接口的基础语法 1、接口也是这一种“引用数据型”,编译之后会产生class字节码文件。 2、接口是完全抽象的。(抽象是半抽象的)。或者说接口是特殊的抽象 3、接口的定义: [修饰符列表] interface 接口名{} 4、接口支持多继承,一个接口继承多个接口。 5、接口中只包含两部分内容,一部分是:常量。一部分是:抽象数据型。接口没有其他内容。 6、接口所有元素都是public修饰的。(公开的) 7、接口中的方法不能有方法体。 8、接口中的抽象方法定义时,public abstract 修饰符可以

Alopecian的博客 258

java进阶02:抽象接口之间关系 抽象接口的区别

什么是抽象非抽象继承抽象,该抽象中有抽象方法,非抽象子中一定要对该抽象方法进行实现,否则报错面试判断题:java中凡是没有方法体的方法都是抽象方法。错误的。

博客 404

总结java接口、抽象、具体之间的继承实现关系

==============总结============== 1、接口可以继承接口,注意不是实现implements  interface1 extends interface2  接口不可以继承具体或者抽象  ERROR:interface extends class 2、抽象可以继承抽象,可以实现接口    abstractClass1 extends abstrac

681

java中关于CollectionMap相关的&接口之间关系

java中CollectionMap相关的接口

ss0xt的博客仓库 564
上一篇: Java多态
下一篇: Java异常与log4j
ihs725
博客等级 码龄7年 3粉丝 26原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值