鱼C论坛

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

接口怎么理解?

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

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

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

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



小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-27 08:21

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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