黑马程序员技术交流社区

标题: 使用抽象类和接口的好处? [打印本页]

作者: 王红霞    时间: 2012-7-10 18:54
标题: 使用抽象类和接口的好处?
迷糊了……
在继承抽象类和实现接口时都要重新复写一遍抽象类和接口中的方法  为什么还要用抽象类和接口呢?直接在子类中写上各种方法不行吗

作者: 田向向    时间: 2012-7-10 19:06
就是为了提高代码的可重用性,你可以在抽象类里提炼出一些公用的已经实现的方法,那么底下那些实现类只要继承它也就继承了这些方法
毕老师的视频里讲的很清楚
作者: 全海波    时间: 2012-7-10 20:05
抽象类的特点:
首先跟你说明一下他们的各自特点:
abstract的特点:
1,抽象方法一定在抽象类中。
2,抽象方法和抽象类都必须被abstract关键字修饰。
3,抽象类不可以用new创建对象。因为调用抽象方法没意义。
4,抽象类中的抽象方法要被使用,必须由子类复写起所有的抽象方法后,建立子类对象调用。
如果子类只覆盖了部分抽象方法,那么该子类还是一个抽象类。
interface的特点:
接口定义时,格式特点:
1,接口中常见定义:常量,抽象方法。
2,接口中的成员都有固定修饰符。
        常量:public static final
        方法:public abstract
记住:接口中的成员都是public的。
接口:是不可以创建对象的,因为有抽象方法。
需要被子类实现,子类对接口中的抽象方法全都覆盖后,子类才可以实例化。
否则子类是一个抽象类。
abstract,interface所修饰的方法都不需要写方法体,这两个关键字都提高了代码的重用性,而且便于以后功能的拓展
作者: 丁二跃    时间: 2012-7-10 20:19
抽象类 以及 接口中的方法是没有被实现的, 他们只是定义了一下应该实现的功能,具体的实现交由实现类去完成。

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

接口,可以认为是抽象类的一种特殊情况,其中的方法和成员都必须是抽象的、终态的

接口,顾名思义就是规范啊,你与别人见面总要约好时间、地点之类的吧
接口中定义了使用程序的人的要求,同时实现程序的人也要按照这种要求来实现程序
面向接口的编程,极大降低了各个层次间实现程序的耦合,
使得程序维护、修改更加简便、降低了后期的成本




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2