社区
Java SE
帖子详情
[请进]大家能不能说说抽象类和接口的异同.....up有分!
stars_of_leo
2004-04-25 04:20:01
同题,
再说说它们各自的优势是什么,
还有就是一般在什么时候用抽象类,
什么时候用接口?
五一前结帖.
...全文
300
52
打赏
收藏
[请进]大家能不能说说抽象类和接口的异同.....up有分!
同题, 再说说它们各自的优势是什么, 还有就是一般在什么时候用抽象类, 什么时候用接口? 五一前结帖.
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
52 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
game0ver12345
2004-04-27
打赏
举报
回复
回复人: allenhe() ( ) 信誉:100 2004-04-26 23:35:00 得分:0
没有方法的接口是标示接口,例如java.io.Serializable
game0ver12345(sfsfdsfdsdfsf) ( )
我会C++
============================================
第一句话对。
“我会C++”,不懂你想对我说什么
zijibense
2004-04-27
打赏
举报
回复
up
game0ver12345
2004-04-26
打赏
举报
回复
实际上,即便你不声明为static final,java一样会把它当作static final量来处理
=======================================================
不同意这句话。
你说说这句话的道理,为什么会是这样?
koskinen
2004-04-26
打赏
举报
回复
问题的中心是多重继承的问题
allenhe
2004-04-26
打赏
举报
回复
我估计他还不太明白接口和抽象类到底什么区别
我认为接口不应该和实现多继承扯在一起
简单地说,不用为了多继承而多继承
就好比不会为了delegate而delegate一样
紫黑蓝白
2004-04-26
打赏
举报
回复
恩,我也喜欢这砖头:《java与模式》
看过后,对接口和抽象类的使用有了新的认识。。。
虽然都推荐使用借口,少用抽象类。但抽象类的优点也是接口不可代替的!
allenhe
2004-04-26
打赏
举报
回复
没有方法的接口是标示接口,例如java.io.Serializable
game0ver12345(sfsfdsfdsdfsf) ( )
我会C++
wingofsea
2004-04-26
打赏
举报
回复
up!!!
game0ver12345
2004-04-26
打赏
举报
回复
回复人: andy100085(铁桶师傅) ( ) 信誉:100 2004-04-26 22:33:00 得分:0
不理接,为什么要引进接口?
有些时候,某接口里只有一个方法 public String getValue()
直接在你要实现的类里,实现这个方法不就得了,干吗非得继承一下该接口,
再给出实现,费这么多时间???
========================================================
极有可能不止一个类存在这个方法public String getValue()
新来的萌新
2004-04-26
打赏
举报
回复
不理接,为什么要引进接口?
有些时候,某接口里只有一个方法 public String getValue()
直接在你要实现的类里,实现这个方法不就得了,干吗非得继承一下该接口,
再给出实现,费这么多时间???
还有有些接口里根本就没有方法,就更奇怪了!!???
那位高手解释一下?很是一个迷惑????
game0ver12345
2004-04-26
打赏
举报
回复
举个例子:
一把刀是武器也是厨具。好象用多继承比较好。
所以刀有厨具的所有属性和方法,也有武器的所有属性和方法。
game0ver12345
2004-04-26
打赏
举报
回复
举个例子:
一把刀是武器也是厨具。好象用多继承比较好。
game0ver12345
2004-04-26
打赏
举报
回复
回复人: allenhe() ( ) 信誉:100 2004-04-26 20:12:00 得分:0
何必一定要多继承呢?
=======================================
有时一些类用多继承比单继承更好的表达出他们的实际关系。
AsukaE
2004-04-26
打赏
举报
回复
接口类似于一个完全的抽象类,但是绝不是抽象类
因为接口本身就不属于类集
打个或许并不准确的比方
如果我们把类集隐喻为整个社会的话
那么接口就相当于这个社会的社会地位
以上浅见,有不当之处还请指正
allenhe
2004-04-26
打赏
举报
回复
何必一定要多继承呢?
allenhe
2004-04-26
打赏
举报
回复
那我的解释也未必正确
那我用自己的理解打个比方
比如说插头
插头和插座不一定是同一个厂家生产的,而且生产插头的厂家很多。
但是所有厂家生产的总是3眼,2眼插头
即便是不同厂家生产的插头插座,那总是能够搭配一起使用
在这里插头的针脚的粗细,位置,以及它的标称电压功率,我们就可以理解成为一个接口(interface)
插座厂家无需知道插头是如何设计的,他只知道这种型号的针脚位置大小以及技术参数总是一样的,因此它只需针对这些参数去操作。
换句话说接口定义了一系列方法,调用类无需关心它里面做了一些什么,而只需要知道这个方法完成这个功能就可以了,比较典型的应该是各种listener
接下来还是用插头吧,插头的针脚和技术参数往往是固定的(可以理解为实现implements了这种接口),但是里面的电路设计各个厂家都是不同的。
那不同的厂商可能有各种型号的产品,但是为了节省开发周期和原材料,他们规定了自己产品的一种设计原则,同时把共同的一些模块做成了通用配件,我们可以把这个行为理解成一种抽象类(abstract class)
具体的各个型号可能不同程度的利用到了那些通用配件,不过设计人员也不需要知道那些通用配件的具体逻辑,他只知道这个配件完成这个功能,几个配件搭配可以完成一个电路逻辑就可以了。当然,再复杂一点说,厂商规定了通用配件必须和一些配件搭配使用,这些配件是各个产品不同的,比如便宜的可以用便宜的原材料,贵得可以用贵金属做。通用配件和自定义配件无需知道对方如何设计,只需要完成自己所规定的功能就可以了
这个可以理解为在非abstract方法调用abstract方法。
打字太累。。
game0ver12345
2004-04-26
打赏
举报
回复
回复人: allenhe() ( ) 信誉:100 2004-04-26 12:57:00 得分:0
我估计他还不太明白接口和抽象类到底什么区别
我认为接口不应该和实现多继承扯在一起
简单地说,不用为了多继承而多继承
就好比不会为了delegate而delegate一样
==========================================================
在JAVA里,只能用接口实现多继承。
“我估计他还不太明白接口和抽象类到底什么区别”,这句话好像是多余的,因为如果楼主懂,很有可能就不发这个帖子了。^_^
Kosling
2004-04-26
打赏
举报
回复
我总觉得接口有点象协议集合?!
sylmoon
2004-04-26
打赏
举报
回复
to 楼主:
我正好也想问这个问题的~
to allenhe() :
有很多初学者在里面,可是你这样让大家很不舒服
既然不懂抽象类和接口,你为什么不能好好解释一下呢?
minghuitian
2004-04-26
打赏
举报
回复
up!
加载更多回复(32)
数据结构中的查找(顺序查找、折半查找、分块查找)
查找,就是根据给定的某个值在一组记录集合中确定某个“特定的”数据元素(记录)或者找到属性值符合特定条件的某些记录。 查找表是由同一类型的数据元素(或记录)构成的集合。 关键字:是数据元素(或记录)中某个数据项的值,用以标识(识别)一个数据元素(或记录)。 主关键字:可以识别唯一的一个记录的关键字。 次关键字:可以识别若干记录的关键字。 对查找表常进行的操作: (1)查询某个“特定的”数据元素是否在查找表中 (2)检索某个“特定的”数据元素的各种属性 (3)在查找表中插入一个数据元素 (4)从查找表中删去某个
数据结构——静态查找表&动态查找表的区别用法【顺序查找-线性查找-折半查找-二分查找-有序表查找-插值查找-斐波那契查找-索引顺序表查找-分块查找】
目录: 一:静态查找表(Static Search Table) 主要操作: 二:动态查找表(Dynamic Search Table) 主要操作: 三:顺序查找(Sequential Search)【线性查找】 1.查找过程 2.时间复杂度 四:折半查找(Binary Search)【二分查找】【有序表查找】 1.查找过程 2.时间复杂度 3.二分查找在静态查找表&...
查找算法之顺序查找,折半查找,二叉查找树
查找表的概念 查找表是由同一类型的数据元素构成的集合。例如电话号码簿和字典都可以看作是一张查找表。 在查找表中只做查找操作,而不改动表中数据元素,称此类查找表为静态查找表;反之,在查找表中做查找操作的同时进行插入数据或者删除数据的操作,称此类表为动态查找表。 顺序查找 顺序查找的查找过程为:从表中的最后一个数据元素开始,逐个同记录的关键字做比较,如果匹配成功,则查找成功;反之,如果直到表中第一个关键字查找完也没有成功匹配,则查找失败 同时,在程序中初始化创建查找表时,由于是顺序存储,所以将所有的数据元素存储
顺序表查找——顺序查找、有序表查找(多种方法)及次优查找树
查找8.2 顺序表8.2.1 顺序表的查找基本思想顺序存储结构下的顺序查找算法平均查找长度8.2.2 有序表的折半查找折半查找的算法思想折半查找算法一般代码二叉搜索树 8.2 顺序表 采用顺序存储结构的数据表称为顺序表。顺序表适合作静态查找。 8.2.1 顺序表的查找 基本思想 设有n个数据元素的顺序表,从表的一端(前端或后端)开始,用给定的值依次和表中各数据元素的关键字进行比较,若在表中找到某个数据元素的关键字和给定值相等,则查找成功,给出该数据元素在表中的位置;若查遍整个表,不存在关键字等于给定值的数据
查找(顺序查找,折半查找,分块查找)
查找 查找是在查询数据过程中必不可少的一个环节,那么如何来进行查找,以及如何进行高效率的查找,就是接下来要解决的问题。 文章目录查找查找的概念顺序查找顺序查找-算法原理顺序查找-算法实现顺序查找-性能分析折半查找折半查找-算法原理折半查找-算法实现折半查找-性能分析分块查找分块查找-算法原理分块查找-算法实现分块查找-性能分析 查找的概念 首先提出一些定义,在查找元素的时候,必然是从一堆数据中去找自己想要的数据,那么这种由同一类型的数据元素构成的集合就被称为查找表。对于查找表可执行以下操作: 查询
Java SE
62,620
社区成员
307,251
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章