黑马程序员技术交流社区

标题: 接口和抽象类的对比 [打印本页]

作者: 黑马飞    时间: 2015-5-27 07:13
标题: 接口和抽象类的对比
接口和抽象类比较相似,接下来我们就来做一个对比分析:

接口:初期理解,可以认为是一个特殊的抽象类
        当抽象类中的方法都是抽象的,那么该类可以通过接口的形式来表示。
class用于定义类
interface 用于定义接口。

接口定义时,格式特点:
1,接口中常见定义:常量,抽象方法。
2,接口中的成员都有固定修饰符。
        常量:public static final
        方法:public abstract
记住:接口中的成员都是public的。


接口:是不可以创建对象的,因为有抽象方法。
需要被子类实现,子类对接口中的抽象方法全都覆盖后,子类才可以实例化。
否则子类是一个抽象类。

接口可以被类多实现,也是对多继承不支持的转换形式。java支持多实现。



抽象:看不懂。

抽象类的特点:
1,抽象方法一定在抽象类中。
2,抽象方法和抽象类都必须被abstract关键字修饰。
3,抽象类不可以用new创建对象。因为调用抽象方法没意义。
4,抽象类中的抽象方法要被使用,必须由子类复写起所有的抽象方法后,建立子类对象调用。
        如果子类只覆盖了部分抽象方法,那么该子类还是一个抽象类。


抽象类和一般类没有太大的不同。
该如何描述事物,就如何描述事物,只不过,该事物出现了一些看不懂的东西。
这些不确定的部分,也是该事物的功能,需要明确出现。但是无法定义主体。
通过抽象方法来表示。

抽象类比一般类多个了抽象函数。就是在类中可以定义抽象方法。
抽象类不可以实例化。


特殊:抽象类中可以不定义抽象方法,这样做仅仅是不让该类建立对象。


作者: Ray丶少年    时间: 2015-5-27 17:32
抽象类有构造函数
接口没有构造函数
作者: 黑马飞    时间: 2015-5-28 08:22
Ray丶少年 发表于 2015-5-27 17:32
抽象类有构造函数
接口没有构造函数

是吗,这个我还真不知道,难道抽象类也能实例化吗?
作者: kmlitheima    时间: 2015-5-28 10:31
楼主总结的比较全面,加油!
作者: Ray丶少年    时间: 2015-5-28 14:23
本帖最后由 Ray丶少年 于 2015-5-28 14:28 编辑
黑马飞 发表于 2015-5-28 08:22
是吗,这个我还真不知道,难道抽象类也能实例化吗?

面试给面的,我刚开始也不知道。抽象类是不能实例化的




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