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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 一切都好 中级黑马   /  2013-12-29 21:18  /  1576 人查看  /  5 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 一切都好 于 2014-1-2 10:01 编辑

接口中的方法和抽象类中的抽象方法有什么区别吗?

评分

参与人数 1技术分 +1 收起 理由
V_John + 1

查看全部评分

5 个回复

倒序浏览
1. 接口,类和结构都可以从多个接口继承;
2. 接口类似于抽象基类,继承接口的任何非抽象类型都必须实现接口的所有成员;
3. 接口和类都可以包含事件,索引器,方法和属性;
4. 类定义可以在不同的源文件之间进行拆分;
5. 接口可以多继承,类只能单继承;
6. 接口不包含方法的实现;
7. 不能直接实例化接口。
回复 使用道具 举报
    (1) 抽象方法只作声明,而不包含实现,可以看成是没有实现体的虚方法
    (2) 抽象类不能被实例化
    (3) 抽象类可以但不是必须有抽象属性和抽象方法,但是一旦有了抽象方法,就一定要把这个类声明为抽象类
    (4) 具体派生类必须覆盖基类的抽象方法
    (5) 抽象派生类可以覆盖基类的抽象方法,也可以不覆盖。如果不覆盖,则其具体派生类必须覆盖它们
    (6) 接口不能被实例化
    (7) 接口只能包含方法声明
    (8) 接口的成员包括方法、属性、索引器、事件
    (9) 接口中不能包含常量、字段(域)、构造函数、析构函数、静态成员

评分

参与人数 1技术分 +1 收起 理由
V_John + 1

查看全部评分

回复 使用道具 举报
接口和抽象类的定义类似、区别是:一个类实现接口、必须实现接口里的所有方法、而且一个类可以实现多个接口(相当于多继承)接口使用interface关键字、而抽象类使用的是abstract 关键字、一个类只能继承一次。继承抽象类的话、是可以不全部实现他的所有方法的。但是你可以重写他的方法

抽象类:抽象类是特殊的类,只是不能被实例化;除此以外,具有类的其他特性;重要的是抽象类可以包括抽象方法,这是普通类所不能的。抽象方法只能声明于抽象类中,且不包含任何实现,派生类必须覆盖它们。另外,抽象类可以派生自一个抽象类,可以覆盖基类的抽象方法也可以不覆盖,如果不覆盖,则其派生类必须覆盖它们。

评分

参与人数 1技术分 +1 收起 理由
V_John + 1

查看全部评分

回复 使用道具 举报
一个类可以有多个接口 只能有继承一个父类
抽象类可以有构造方法,接口中不能有构造方法。
抽象类中可以有普通成员变量,接口中没有普通成员变量
接口里边全部方法都必须是abstract的 抽象类的可以有实现了的方法
抽象类中的抽象方法的访问类型可以是public,protected   但接口中的抽象方法只能是public类型的,并且默认即为public abstract类型
抽象类中可以包含静态方法,接口中不能包含静态方法
抽象类和接口中都可以包含静态成员变量,抽象类中的静态成员变量的访问类型可以任意,但接口中定义的变量只能是public static final类型,并且默认即为public static final类型。

评分

参与人数 1技术分 +1 收起 理由
V_John + 1

查看全部评分

回复 使用道具 举报
是一样的吧。参考:http://www.cnblogs.com/adforce/archive/2011/04/18/2019690.html
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马