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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 小小迪 中级黑马   /  2015-3-19 11:29  /  1723 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

刚开始学的时候,为了便于理解,解释接口为一种特殊的抽象类,那么两者到底有什么区别呢?

8 个回复

倒序浏览
接口类与抽象类的异同点
相同点:都是不断向上抽取而来的
不同点:1.抽象类需要被继承,只能单继承(也就是子类只能有一个父类)。接口需要被实现,而且可以多实现。
        2.抽象类可以定义抽象方法和非抽象方法,子类继承后,可以直接使用非抽象方法。接口中只能定义抽象方 法,必须由子类去实现。
        3.抽象类的继承,是is a关系,在定义该体系的基本共性内容。接口的实现是like a关系。
回复 使用道具 举报
补充一条:
4. 抽象类的成员修饰符可以自定义。接口中的成员修饰符是固定的,都是public的。
回复 使用道具 举报
理当如此 发表于 2015-3-19 11:59
接口类与抽象类的异同点
相同点:都是不断向上抽取而来的
不同点:1.抽象类需要被继承,只能单继承(也就是 ...

好详细,学习······
回复 使用道具 举报
所以是,接口的使用弥补了Java的单继承现象,一个类在继承另一个父类的同时可以实现多个接口,例如 class A extends class B imlplements interface C interface D是可以的
回复 使用道具 举报
我是来看回复,学习的。
回复 使用道具 举报
Jaybor 中级黑马 2015-3-19 21:33:37
7#
接口中全部都是抽象方法,实现类必须全部重写它们;而抽象类中既有抽象方法,也有普通方法,子类只需要重写抽象方法即可;
应用:GUI中有很多Adapter类,它们都是实现了某个Listener的抽象类,但是里面的方法全都是普通方法,构件添加监视器的时候只需要调用自己需要的方法;
回复 使用道具 举报
接口有人说是一种标准,但是不管怎么说,用在对的地方就行。上面对于二者的特点回答已经清楚了。接口可用于提炼方法。
回复 使用道具 举报
简单点说吧:
抽象类中可以有抽象方法和普通方法.
而接口中全部都是抽象方法.      
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马