抽象类和接口有什么区别,区别在那里?

lqtflwg718 2004-06-24 04:27:07
抽象类和接口有什么区别,区别在那里?
...全文
246 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
stcbc 2004-06-30
  • 打赏
  • 举报
回复
接口中只有方法的声明,而方法中没有具体的代码

在java 中的多重继承是指利用接口来实现多重继承,不象 C++ 中的类可以直接实现多重继承

dawei71141812003 2004-06-30
  • 打赏
  • 举报
回复
说简单点,如果你的类已经继承了一个类,可现在还要再继承另一个类怎么办?只能通过接口
luiss 2004-06-30
  • 打赏
  • 举报
回复
mark
liverpoolfc 2004-06-29
  • 打赏
  • 举报
回复
1.抽象类只能继续一个,而接口可以多重继承

2.接口绝对不能带有任何“实现细目”,而抽象类可以带有“含实现细目的方法”,打个比方,现在你要设计一个类,而根据你的分析,要继承这个类的所以子类中,全部或者大部分都包含有一摸一样的处理方法,那么,你就可以在抽象类中直接提供这个“公用”的方法,免得产生代码重复编写。而接口,是实现“隐藏细目”,实现“多态”,实现“向上转型”,和为拥有共同特点的类定制“协议”的技术。
pleonheart 2004-06-29
  • 打赏
  • 举报
回复
抽象类涉及实现
shine333 2004-06-29
  • 打赏
  • 举报
回复
接口完全与实现无关,只告诉你能做什么,却永远不告诉你怎么做

抽象类则不一定,有时可用其中非抽象部分,实现诸如流程控制的事情,

而且,抽象类会丧失一定的灵活性,并且有时会是致命的

interface UserInfo {
String getProperty(String key);
}

class DefaultUserInfo implements UserInfo {
Map properties = new HashMap();
public String getProperty(String key) {
return properties.getProperty(key);
}
}


abstract class UserInfo2 extends HashMap {
}

class DefaultUserInfo2 extends UserInfo2 {
}

对于2而言,getProperty方面和1比较,没有丝毫差别,但是由于DefaultUserInfo2必然是个HashMap,因此,谁都可以无限制地使用HashMap中的set/put方法
holy_phoenix 2004-06-29
  • 打赏
  • 举报
回复
1、接口提供了一种多充继承的方式,因为你能够实现多个接口。而一个类之能够从另外一个类扩展,哪怕父类只有抽象方法。

2、抽象类可以实现部分方法、静态方法等等。而接口只能用公共方法。
blasterboy 2004-06-25
  • 打赏
  • 举报
回复
抽象类,一般来说都是为接口来实现 默认实现的。也就是给借口来实现一些方法,这样子类只关心他们应该实现的方法
blasterboy 2004-06-25
  • 打赏
  • 举报
回复
接口可以让你成为多个类型,比如有个接口叫父亲,有个接口厨师,那么只要你实现了这两个接口,你就有两个类型,这样,不管是用到父亲,还是用到厨师的地方,你都可以。

抽象类,其实和普通的类是一样的,只不过它有一些方法没有实现,而强迫子类去实现,这样不同的子类,就会有不同的实现,这样实现了多态!

其实借口实现多态是最理想的:)
jxufewbt 2004-06-25
  • 打赏
  • 举报
回复
一个是class,一个是interface
hl_longman 2004-06-25
  • 打赏
  • 举报
回复
这是基本概念,当然要知道。
接口是空的方法,可以被其它的类根据自己的要求来实现它;
抽象类是类,它有一些没有实现的空方法,给它的子类去实现;

panzhiwei(panzhiwei008) 也讲得不错!
不过你的有些问题还是很简单的,要多看点基础的书!!

bestdelphier 2004-06-25
  • 打赏
  • 举报
回复
不必太过深究,反正我是不了解,感觉楼上回答问题的诸位也未必就那么了解,不过是搬了书上的那几句而已。^_^
panzhiwei 2004-06-25
  • 打赏
  • 举报
回复
因为JAAV里面不支持多继承,所以一个类只能有一个直接的超类,但是可以通过接口实现多继承.抽象类是没有具体对象的概念类,它是所有子集的公共属性的集合,充分利用这些公共属性可以提高开发和维护程序的效率.
lqtflwg718 2004-06-24
  • 打赏
  • 举报
回复
能不能说的详细点啊通俗点的啊!
我就是不明白有什么不同啊?
lzhang5200 2004-06-24
  • 打赏
  • 举报
回复
在Java中,一个类只能有一个父类,而一个接口可以有多个父接口。
snoopydotnet 2004-06-24
  • 打赏
  • 举报
回复
据我所知,接口有接口的优势——多重继承;抽象类有抽象类的优势——可以定义Feild。你若是要问我为何语法是这样,那就去研究一下【Design Pattern】吧!
lqtflwg718 2004-06-24
  • 打赏
  • 举报
回复
不是吧看书。看了多少遍了!
yaray 2004-06-24
  • 打赏
  • 举报
回复
看书
lqtflwg718 2004-06-24
  • 打赏
  • 举报
回复
多重继承有什么用啊? 不知道啊!
只知道多重继承是一个子类继承多个父类, 到底怎么一回事搞不大清楚啊!
binny 2004-06-24
  • 打赏
  • 举报
回复
一个是类,一个是接口
加载更多回复(1)

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧