社区
Java SE
帖子详情
忽然有些不明白, JAVA中的 Interface 到底有什么用呢?
ttt
2002-12-25 08:58:09
以前写JAVA的时候也没想那么多,就怎么想怎么写就是了
可是前段时间又写了大概半年多的VB, 再回来写JAVA的时候,忽然就有些不明白,JAVA中定义的那些 Interface到底有什么用呢?VB中没有他们不也挺好
糊涂了~~
...全文
689
29
打赏
收藏
忽然有些不明白, JAVA中的 Interface 到底有什么用呢?
以前写JAVA的时候也没想那么多,就怎么想怎么写就是了 可是前段时间又写了大概半年多的VB, 再回来写JAVA的时候,忽然就有些不明白,JAVA中定义的那些 Interface到底有什么用呢?VB中没有他们不也挺好 糊涂了~~
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
29 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
redkey
2002-12-28
打赏
举报
回复
多重继承
marcal
2002-12-28
打赏
举报
回复
weimenren(愚人碼頭(每天进步一点)说的当然清楚了。我忍不住了。他有相当一段是抄了我的翻译的。
黑颈
2002-12-28
打赏
举报
回复
怎么还在说是多重继承,看看我上面的话
多重继承是不良设计,所以java和delphi已经禁止
接口不是为了实现多重继承,它是另一种的设计思想
在OO设计中,有两种关系要注意区别:
包含:是has a的关系
继承:是is a的关系
要仔细看看weimenren(愚人碼頭(每天进步一点)的举例
colors
2002-12-27
打赏
举报
回复
weimenren(愚人碼頭(每天进步一点)) 其实说得很清楚了,而且也是标准的解释。
sayo
2002-12-27
打赏
举报
回复
设计模式中的抽象工厂方法可以说明抽象类与接口的关系
以一个抽象类来代表一个抽象的工厂,并在其中设置一些通用方法,而在具体的工厂中再引出其他实际方法。若抽象工厂特别简单,则可以用接口来代替——即没有通用方法的实现。
从另外一个角度讲
抽象类指明所有从它继承的类的共同特点,在其中实现某些方法,但又不想让其作为具体类被实例化
接口只是规定了所有从其继承(或实现)的类的行为方式
sayo
2002-12-27
打赏
举报
回复
这个问题应该从
--封装
--多继承
--接口与抽象类的比较
等几个方面来分析
楼上几位基本阐明了前两个问题。接口与抽象类的比较一言以蔽之就是
接口 -- 象什么
抽象类 -- 是什么
liusuanse
2002-12-27
打赏
举报
回复
xx
marcal
2002-12-27
打赏
举报
回复
我在看各位个言论的时候突发奇想。下面说一下我的看法。
接口是什么?本质上他就是一个方法名和指针的列表。其实我们平时建立的封装也就是实现了一个接口。也就是在这个列表里填写上了方法的程序段的指针。而继承就是使用两级列表,或者多级列表(程序源代码里面每各类应该只有一个列表)。而每一个列表就是一个接口。
所以接口在c++里面就已经存在,只是c++允许程序员实现这些接口(就是填写如方法程序段的指针),就叫做多继承。
站在高层来说,多继承或者说,java的接口机制,使到同一个对象拥有了多重的递属关系,在编写大型而复杂的程序的时候可以实现单继承关系图所无法实现的功能。
java出于降低软件设计复杂度的考虑,没有允许程序员实现接口。这样逻辑上接口就不是继承关系图里面的一部分。继承关系图就简化了。
coaa
2002-12-27
打赏
举报
回复
设计模式
masterjames
2002-12-27
打赏
举报
回复
让别人知道,你要给他什么
mercy123
2002-12-27
打赏
举报
回复
由于多继承的复杂性,JAVA 禁止了多继承。interface
在一定程度上解决了多继承问题,但interface无属性无继承性
,有抽象性,只提供待实现的抽象(契约),使实现与界面分离。
mefaintII
2002-12-27
打赏
举报
回复
Interface实在是个好东西。
在设计模式中,它起了很重要的作用。
具体的模式我也搞不清楚了,好像是adaptor模式吧,当然名称不是关键。
我简单的说说他的作用。
理论地说:它实现了OO得多态性。
多态性究竟是什么?
多态性,我觉得实现的就是,在高层,你不关心如何去实现某件事情
你只规定,做一件事情必须要具有几个步骤(方法),而具体怎么作
在这几个步骤中又调用了什么,这些都是由实现类自己作。
这种性质,在通用事务处理中相当重要。
没有多态的情况下
一个控制程序,处理相同性质不同实现的业务,必须写无数个
switch ...case...
这种情况可维护性很差。
如果有了接口,我的控制程序只要接受接口类型,所有业务在作完之后
结果都上构成接口(这就是upcasting),那么控制程序就可以实现通用
处理。以后有新业务,也只需要按照接口标准来作就够了。
这样说不知道清楚否
黑颈
2002-12-27
打赏
举报
回复
to weimenren(愚人碼頭(每天进步一点)) :
我认为,从OO角度来看,接口不能说继承,应该说实现,其它认识和你据说相同。
在这里,很多人把接口说成主要是为了多继承,我觉得有些问题,严格来说,如上所说,接口不能说继承。而且如果说接口是为了实现多继承,那直接让类实现多继承算了,为何要发明一个'接口',让它来做呢?这不是多此一举吗?当然不是,多继承是OO中的大忌,所以java和Delphi都禁止了多继承。
在OO中不用多继承来解决问题,而是用'接口'的思想,所以有些人就以为'接口'就是实现多继承,而实际上接口是另一种设计思想,大家可以看看weimenren(愚人碼頭(每天进步一点)的举例或多看一些OO和设计模式的书来了解这一点。
wang_zheng_wz
2002-12-26
打赏
举报
回复
最好不要学basic,dijkstra说的
mengz
2002-12-25
打赏
举报
回复
就我的目前理解来看,他是JAVA中解决类不能多父继承的唯一方法了.
记得有本书说,接口是abstract类的一种终极形式.
techlife
2002-12-25
打赏
举报
回复
piano,violine,guitar都实现了instrument这个interface,那么无须知道他们的细节,只须知道让他们演奏的方法是play()就可以了,就是可以用一个方法对不同的instrument来进行操作
corner
2002-12-25
打赏
举报
回复
java中的interface主要完成了两个功能:
1、纯抽象类。
2、多重继承。
这个东西在java中进一步展开还可以讨论出很多东西,这里不详述。
gaojunbo
2002-12-25
打赏
举报
回复
就是可以实现多重继承的功能呀。
例,
子继承了父,也继承了母,如不使用接口怎么写?java只有单继承。所以就要使用接口来实现。
class son extends father implements mather
{
}
黑颈
2002-12-25
打赏
举报
回复
interface,中译名'接口',也就是连接两部分的纽带。注意,部分,即面向对象(OO)里说的对象,跟程序中的实例有区别。
接口使其调用接口的一边不用知道另一边是什么东西,怎样实现的,只要知道如何调用接口就行。而实现接口的一边也不用知道另一边是什么东西,只要知道实现接口就行。
这就很好的实现了OO中的封装性(而类继承则破坏了封装性,这就引起了广泛的争论,在此就暂不下定论,主要看实际中自己的把握来积累经验)。
举个形象的例子,假如说,未来的车子只要听到声音'启动',就会启动,听到'目的地 A',就会自动开到目的地A,那么不管什么人都能开车了,包括盲人,哑吧。而且考驾照也就很容易了,且只用考一个驾照,不用现在的什么A、B、C、D、E...那么多,就可以开所有的车子,包括卡车,轿车,摩托车。
虽然这在现在是个幻想,但在程序中可就轻松可以实现了,在程序中充分运用接口,按照可复用的设计方法,就可以美妙的解决很多类似的问题
baliok
2002-12-25
打赏
举报
回复
可以用来实现多重继承啊!!!
加载更多回复(9)
如何在Android Studio下进行NDK开发
可能大家和我一样,一听到接口什么的就犯懵:“我也知道这是
java
本地开发接口的意思,但它具体是个什么意思我还是搞不
明白
。”其实JNI它就是一种协议,一说协议,那它就是对某种东西的一个规范和约束,说的好听一点...
Java
中
interface
接口使用方法详解
我们可以利用
Java
里的
interface
接口,来让
Java
的类间接地实现多继承。那么
interface
接口
到底
是咋回事?该怎么用?怎么实现多继承?看这篇就够了!
接口是什么?
Interface
是什么?
Java
Interface
是什么?
Java
接口是什么?
接口是什么?
Interface
是什么?...
Java
Interface
有什么用? 面对这些疑惑, 相信刚开始学习
Java
的小朋友真的不懂 懵圈有没有? 下面听我给你讲讲
Java
的接口
到底
是什么? 有什么作用? 为什么要用接口? 我对接口的理...
java
interface
常量_
Java
Interface
是常量存放的最佳地点吗?
由于
Java
编程
interface
中
声明的字段在编译时会自动加上static final的修饰符,即声明为常量。因而
interface
通常是存放常量的最佳地点。然而在
Java
编程的实际实际运用时却会产生一部份疑难问题。 疑难问题的起因有两...
从零开始学
Java
之
interface
接口有哪些特性?快来看
Java
中
的接口(
interface
)类似于是一种特殊的抽象类,它也是众多抽象方法的集合。接口的定义方式、组成部分都与抽象类相似,却比普通的抽象类更为抽象和纯粹。不过我们只能说接口是类似于抽象类,却并非真的是类。...
Java SE
62,614
社区成员
307,327
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章