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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 王红霞 中级黑马   /  2012-7-10 18:54  /  1428 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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

4 个回复

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

评分

参与人数 1技术分 +1 收起 理由
刘笑 + 1 赞一个!

查看全部评分

回复 使用道具 举报
抽象类 以及 接口中的方法是没有被实现的, 他们只是定义了一下应该实现的功能,具体的实现交由实现类去完成。

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

评分

参与人数 1技术分 +1 收起 理由
刘笑 + 1 赞一个!

查看全部评分

回复 使用道具 举报
抽象类是由abstract修饰的类,类中可以包含有抽象的方法,也就是没有方法体的方法
其真正的实现是在继承了该抽象类的子类中完成的

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

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