黑马程序员技术交流社区

标题: 接口和抽象类有什么区别 [打印本页]

作者: 郑志强    时间: 2013-3-14 18:16
标题: 接口和抽象类有什么区别
本帖最后由 郑志强 于 2013-3-14 21:11 编辑

继承他们的都需要实现他们的方法和属性。
作者: 王毅    时间: 2013-3-14 18:38
接口支持多继承,抽象类不能实现多继承。
接口只能定义行为,抽象类既可以定义行为,还可提供实现。
作者: 梁思思    时间: 2013-3-14 18:43
接口的特点总结:
1、接口是一种规范。为了多态。
2、接口不能被实例化。
3、接口中的成员不能加“访问修饰符”,接口中的成员访问修饰符为public,不能修改。(默认为publci)
4、接口中的成员不能有任何实现(“光说不做”,只是定义了一组未实现的成员)
5、接口中只能有方法、属性、索引器、事件,不能有“字段”。
6、接口中只能与接口之间继承,并且可以多继承。
7、实现接口的子类必须实现该接口的全部成员。
8、一个类可以同时继承一个类并实现多个接口,如果一个子类同时继承了父类A,并实现了接口IA,那么语法上A必须卸载IA的前面。class MyClass:A,IA{},因为类是单继承。
9、当一个抽象类实现接口的时候,如果不想把接口中的成员实现,可以把该成员实现为abstract。(抽象类也能实现接口,用abstract标记)
10、“显示实现接口”,只能通过接口变量来调用(因为显示实现接口后成员为private)。


抽象类(abstract)特点总结:
1、不能被实例化,需要被继承。多态。
2、子类必须重写父类中的所有的抽象成员,除非:子类也是一个抽象类。
3、抽象成员在父类中不能有任何实现。
4、抽象类中可以有实例成员。
5、抽象成员的访问修饰符不能是private.
6、抽象成员只能写在抽象类中。
作者: 王智威    时间: 2013-3-14 19:58
抽象类中可以有具体的方法,而接口中的方法都是抽象的,java有多实现,没有多继承
作者: 丘凤光    时间: 2013-3-14 20:08
给力,学习了




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