鱼C论坛

 找回密码
 立即注册
查看: 3316|回复: 6

接口怎么理解?

[复制链接]
发表于 2022-4-8 21:08:42 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
如题,java学到接口。。没太理解。。。。也不知道有啥用
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-4-8 22:00:51 | 显示全部楼层
这是一个抽像的概念。看你怎么理解。
接口和抽象类意思差不多,只不过接口里面全是抽象方法。(是抽象类的特殊表现形式)
估计你们老师也给你打过比方了。
还是拿电脑的USB端口来说事,USB就是个接口,它本身是不具备功能(比如,USB鼠标,USB摄像头,这些都是功能),需要什么功能,你自己可以通过接口来实现你的功能。
接口就是一类事物共有的抽像概念。
再如:走路 这就是一个抽像概念, 人 可以走路,鸡也可以走路,等。所以我可以把 走路 定义为接口中的一个抽象方法,至于怎么走,只要使用接口的代码实现人走路这个功能,鸡走路这个功能就可以了。

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-4-10 15:37:50 | 显示全部楼层
ba21 发表于 2022-4-8 22:00
这是一个抽像的概念。看你怎么理解。
接口和抽象类意思差不多,只不过接口里面全是抽象方法。(是抽象类的 ...

有点懂了,大佬我还想请教一个问题,接口和抽象父类的区别是什么?有点混乱
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-4-10 16:28:39 | 显示全部楼层
dabinge 发表于 2022-4-10 15:37
有点懂了,大佬我还想请教一个问题,接口和抽象父类的区别是什么?有点混乱

接口是抽象类的特殊表现形式
interface 关键字描述,里面全是抽像方法。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-4-10 18:27:21 | 显示全部楼层
ba21 发表于 2022-4-10 16:28
接口是抽象类的特殊表现形式
interface 关键字描述,里面全是抽像方法。

那我啥时候使用接口啥时候使用抽象类呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-4-10 19:30:17 | 显示全部楼层
dabinge 发表于 2022-4-10 18:27
那我啥时候使用接口啥时候使用抽象类呢?

接口全是抽像方法。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-4-15 15:29:36 | 显示全部楼层
本帖最后由 AnisHan 于 2022-4-15 15:35 编辑

理解起来很简单,比如你有两个类(比如是动物),你需要创建一个动物类然后创建两个子类 猫和狗,这时候你发现两个子类有共同方法,你就像抽象两个方法,让他们继承(这样有助于多态)但是class要求你方法都要实现,而动物类这个基类的方法似乎比较抽象不需要具体实现。于是就有了抽象类,它支持不要方法体的函数(也就是纯虚函数, 抽象函数)。
然后你发现,抽象类仍然可以定义普通方法和成员变量,抽象的不够彻底,于是就出现了接口。

接口可以多实现,这是一个小优点,接口的非default方法是强制要求实现类什么的实现的,抽象类可以创建普通方法,这样子类也可以用(怎么说呢,类似模板一样)。
一般接口创建的叫”标准“,抽象类创建的就是额 子类的抽象,这些抽象的方法也可以当作”标准“,但是这个标准可能不太行,不够抽象也不可以多继承。
抽象类不允许private方法
比如closeable就是个接口,这个有了这个接口就定义了可以关闭的标准,子类肯定都要有个close函数。还有例子就是链接数据库的功能叫JDBC,但是市面上数据库这么多,Oracle不可能给他们做适配,而是他们给Java做适配,但是也不能让他们设计的用法一人一个样(因为这样Java程序员肯定不爽)所以就设计了一个接口,数据库开发者实现接口的方法有没有附加的内容就无所谓了,这样就统一了标准,JDBC的用法都差不多了。

关于概念你不要纠结这么多,没有语法要求接口 抽象类你怎么用都行,具体使用就看后期学习就行,毕竟这东西实际开发才遇得到,你学习几乎不用写(以后学注解要用接口)。
这就和有些人写Win32程序不写窗口过程,直接在消息循环写程序一样(这样写肯定不行,有些地方会出问题但是简单程序可以运行)学编程没必要死磕定义。



想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-22 13:01

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表