Chinaunix首页 | 论坛 | 博客
  • 博客访问: 972593
  • 博文数量: 109
  • 博客积分: 1751
  • 博客等级: 上尉
  • 技术积分: 1817
  • 用 户 组: 普通用户
  • 注册时间: 2011-05-31 22:37
文章分类

全部博文(109)

文章存档

2014年(9)

2013年(21)

2012年(48)

2011年(31)

分类: Android平台

2014-06-10 12:27:48

接口和抽象类显著的共同点是接口和抽象类都可以有抽象方法。 
接口和抽象类的不同点有: 
           (1)抽象类可以有实例变量,而接口不能拥有实例变量,接口中的变量都是静态(static)的常量(final)。 
           (2)抽象类可以有非抽象方法,而接口只能有抽象方法。

 

java允许一个接口继承多个父接口,也允许一个类实现多个接口,而这样的多继承有上面提到的缺点马? 
答案是没有,这是由接口的抽象性决定的。 
正如前面介绍的,在接口中不能有实例变量,只能有静态的常量,不能有具体的方法(包含方法体),只能有抽象方法,因此也就摒弃了多继承的缺点。 
对于一个类实现多个接口的情况,因为接口只有抽象方法,具体方法只能由实现接口的类实现,在调用的时候始终只会调用实现类的方法(不存在歧义), 因此不存在多继承的第二个缺点;而又因为接口只有静态的常量,但是由于静态变量是在编译期决定调用关系的,即使存在一定的冲突也会在编译时提示出错;而引 用静态变量一般直接使用类名或接口名,从而避免产生歧义,因此也不存在多继承的第一个缺点。 
对于一个接口继承多个父接口的情况也一样不存在这些缺点。 

阅读(1614) | 评论(0) | 转发(0) |
0

上一篇:android binder

下一篇:没有了

给主人留下些什么吧!~~