黑马程序员技术交流社区
标题:
关于抽象类和接口的区别?
[打印本页]
作者:
华行天下
时间:
2013-8-15 13:42
标题:
关于抽象类和接口的区别?
本帖最后由 华行天下 于 2013-8-19 10:50 编辑
抽象类和接口的具体区别,我好像搞混了!
作者:
l396262632
时间:
2013-8-15 13:45
抽象能在类里面写实现,接口不行。 最大的区别
作者:
binghaiwang
时间:
2013-8-15 14:04
本帖最后由 binghaiwang 于 2013-8-15 14:59 编辑
普通抽象类:被abstract修饰符所修饰,类中方法都是抽象的,并且没有任何方法体。
接口:定义用Interface修饰符,该类中方法也都是抽象的,与其他类是存在的实现关系。
java类 可以实现多个接口,而只能继承一个父类。
作者:
panningwjr
时间:
2013-8-15 15:46
1:抽象类只能被继承,而且只能单继承。接口需要被实现,而且可以多实现。
2:抽象类中可以定义非抽象方法,子类可以直接继承使用。接口中都有抽象方法,需要子类去实现。
3:抽象类使用的是 is a 关系。接口使用的 like a 关系。
4:抽象类的成员修饰符可以自定义。接口中的成员修饰符是固定的。全都是public的
作者:
刘劲松
时间:
2013-8-15 16:33
http://bbs.itheima.com/thread-74633-1-1.html
这是我的帖子,里面说的很清楚了。你先在论坛里找了答案,再提问,这样比较好
作者:
sunriselzz
时间:
2013-8-15 18:28
接口与抽象类的区别:
共 性:都是不断抽取出来的抽象的概念
区别 1:抽象类体现继承关系,一个类只能单继承
接口体现实现关系,一个类可以多实现,避免单继承的局限性.
区别 2:抽象类是继承,是 "is a "关系
接口是实现,是 "like a"关系
区别 3:抽象类中有构造方法,可以有变量,常量,有抽象方法.
可以定义非抽象方法,供子类直接使用.
接口中只有常量,没有构造方法. 方法都是抽象,接口中的成员都有固定修饰符.
默认修饰符为:
成员常量:public static final 成员方法:public abstract
区别 4: 设计理念
类继承是定义了这个体系的共性内容
接口被实现是定义了体系的扩展内容,是对外暴露的规则
如果抽象类中只有抽象方法,并且只有常量,这个抽象类就可以用接口表示。接口的出现降低耦合性。
类与接口之间是实现关系,而且类可以继承一个类的同时实现多个接口。
接口与接口: 继承关系,可以单继承,也可以多继承。
作者:
孙鑫
时间:
2013-8-15 19:09
1.抽象类中可以有非抽象方法。接口中则不能有实现方法。
2.接口中定义的变量默认是public static final 型,且必须给其初值,所以实现类中不能重新定义,也不能改变其值。接口中的方法默认都是 public,abstract 类型的。
3.抽象类中的变量默认是 friendly 型,其值可以在子类中重新定义,也可以重新赋值。
作者:
张俊生
时间:
2013-8-15 23:55
亲,如问题已解决请将分类的未解决改为已解决。
以后的问题贴也要及时更改分类哦~
保持队形,谢谢合作
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2