A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 袁园 中级黑马   /  2012-11-30 19:03  /  1504 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

在继承抽象类和实现接口时都要重新复写一遍抽象类和接口中的方法  为什么还要用抽象类和接口呢?直接在子类中写上各种方法不行吗

评分

参与人数 1技术分 +1 收起 理由
古银平 + 1 神马都是浮云

查看全部评分

4 个回复

倒序浏览
抽象类 以及 接口中的方法是没有被实现的, 他们只是定义了一下应该实现的功能,具体的实现交由实现类去完成。

定义与事先进行分离可以降低程序间的耦合。
以 接口或抽象方法为分界,我们可以把编写的这一套代码分为前后两部分。在实际项目中,这两部分可能不是由一个人完成的,如果实现定义好接口,面向接口,完成前面程序的人不必等后半部程序就可以工作了……另外对于一个功能的实现可能有不同的方法,如果直接使用类来完成,那未来维护更新功能时将在源程序内进行大量修改。
记得看那个视频中说过:接口比方是定义的一种显卡规范,不同的厂商照着这个规范去开发显卡,那么只要我的电脑能够使用符合规范的显卡,就可以很方便的对显卡进行更换

评分

参与人数 1技术分 +1 收起 理由
古银平 + 1 神马都是浮云

查看全部评分

回复 使用道具 举报
我听别人的哈:抽象类定义的是一个类应该具有的基本的功能,而接口则是在定义一个类额外功能。比如一个学生类:基本功能是学习,这个应该用抽象类去定义;而有些学生会抽烟,这就不能被定义为抽象类,因为抽烟的这一功能毕竟是有些学生的,应该定义为接口。
回复 使用道具 举报
接口:解决了java中只能单继承的问题。(对多继承进行了优化)
         A:类与类:只能是单继承。
      B:接口与接口:可以是单继承,也可以是多继承。
      C:类与接口:可以是单实现,也可以是多实现。
回复 使用道具 举报
这是为了方便复用。和功能扩展,
比如;你要描述动物,动物有 猫  狗   猪,  这些动物都具有有吃和睡觉的属性,睡觉的方法是一样的,但是每个动物吃的东西都不一样,所以吃这个方法就是未知的,那么这些未知的就可以定义成抽象了,你在调用的时候直接重写,简单点说就是有未知的方法就定义抽象。接口是用来扩展功能的,只要符合接口的规范就可以用,这样就减少了函数的偶合性
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马