dabinge 发表于 2022-4-8 21:08:42

接口怎么理解?

如题,java学到接口。。没太理解。。。。也不知道有啥用

ba21 发表于 2022-4-8 22:00:51

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

dabinge 发表于 2022-4-10 15:37:50

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

有点懂了,大佬我还想请教一个问题,接口和抽象父类的区别是什么?有点混乱

ba21 发表于 2022-4-10 16:28:39

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

接口是抽象类的特殊表现形式
interface 关键字描述,里面全是抽像方法。

dabinge 发表于 2022-4-10 18:27:21

ba21 发表于 2022-4-10 16:28
接口是抽象类的特殊表现形式
interface 关键字描述,里面全是抽像方法。

那我啥时候使用接口啥时候使用抽象类呢?

ba21 发表于 2022-4-10 19:30:17

dabinge 发表于 2022-4-10 18:27
那我啥时候使用接口啥时候使用抽象类呢?

接口全是抽像方法。

AnisHan 发表于 2022-4-15 15:29:36

本帖最后由 AnisHan 于 2022-4-15 15:35 编辑

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

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

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



页: [1]
查看完整版本: 接口怎么理解?