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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 337091921 中级黑马   /  2013-4-26 21:07  /  1406 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

相同点:
都是不断向上抽取而来的
不同点:
1,抽象类需要被继承,而且只能单继承
   接口需要被实现,而且可以多实现
2,抽象类中可以定义抽象方法和非抽象方法,子类继承后,可以直接使用
    非抽象方法。
    接口中只能定义抽象方法,必须有子类去实现
3,抽象类的继承,是在该体系的基本共性内容。父和子有共性
   接口的实现,在定义体系而外功能。接口可以给子类其他的功能

评分

参与人数 1技术分 +1 收起 理由
曹睿翔 + 1 神马都是浮云

查看全部评分

7 个回复

倒序浏览
4.接口只能定义接口只可以定义static final成员变量
而抽象类可以定义其它修饰符修饰的变量。
回复 使用道具 举报
接口与实现相分离,从而降低耦合性,而且接口中定义的方法都是抽象的方法,接口中只能定义常量,不能定义变量,且都是用static ,和final修饰的如果你没有自己定义系统将帮你定义,方法也是一样是抽象的方法,接口和抽象类一样不能实例话,但接口可以实现多继承,而抽象类不能;接口不能有实例的方法和构造方法,接口要用implements关键字实现接口里面的方法都必须实现;
且接口表示的是一中约定;
如果一个类中的方法都是抽象的方法就考虑接口了;但要是有实例方法或构造函数的话就用抽象类了
抽象类里可以有实例方法,和构造函数,但只能实现单继承要用extends关键字,

评分

参与人数 1技术分 +1 收起 理由
曹睿翔 + 1 神马都是浮云

查看全部评分

回复 使用道具 举报
补充下:
1,貌似在java里都是单继承,即一个子类只有一个父类。而一个类可以实现多个接口;
2,当一个类实现一个接口是必须实现其全部抽象方法;
3,两者用的关键字不一样(大家应该都知道);
4,其他上楼说的很不错:
回复 使用道具 举报
抽象类&接口的区别:
共性:都是不断抽取出来的抽象的概念
区别:
抽象类体现继承关系,一个类只能单继承
接口体现实现关系,一个类可以多实现
抽象类是继承,是 "is a "关系
接口是实现,是 "like a"关系
抽象类中定义体系中的基本共性功能
接口通常定义体系中对象的扩展功能
抽象类中可以定义非抽象方法,供子类直接使用
接口的方法都是抽象,接口中的成员都有固定修饰符


回复 使用道具 举报
接口中的方法默认都是public修饰的, 所以在重写接口中的方法时要注意不能用比接口中更加严谨的的修饰符, 就是重写时写成public的就行, 还有在接口中成员变量默认修饰符是public static final修饰的
回复 使用道具 举报
如果仍有问题,请继续追问,如果问题已解决,请将分类改为已解决,谢谢
回复 使用道具 举报
接口不能定义方法的实现,不能定义除static final以外的成员变量,而接口可以定义。
抽象类的方法可以定义成模板方法
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马