现在的位置: 首页 > 综合 > 正文

接口的基本概念

2013年10月09日 ⁄ 综合 ⁄ 共 1000字 ⁄ 字号 评论关闭

在说接口前先说一下关于abstract方法的2点总结:

a.  申明为abstract了的方法一定是没有方法体的;

b.  一个方法如果没有方法体,那么必须申明为abstract

这就不像类(class)了,我们以前说过,一个类即使不包含abstract方法,它也可以申明

abstract类。下面就开始谈谈接口(interface)吧。

接口可以说就是一组规范(requirement),它只告诉你要做什么(do what),而不告诉你怎么去做(how to do),具体的实现(implementation)都是类(class)的工作。

1.  为什么要使用接口

为什么要使用接口呢?为什么不直接在类中定义并实现一个方法呢?我认为(注意:个

人看法而已)是为了编程的灵活性与简单性。使用了接口我们充分利用java的多态(polymorphism)与动态绑定机制,这也与面向接口的编程设计模式相符合,我们可以很简单编写代码。例如有接口interface People,那么对于任何一个实现了它的类如Doctor,我们都可以把它的对象赋值给People型别的reference,例如People p=new Doctor()。这样的话我们可以把变量读申明为People型别的,然后调用方法的话就让JVM自己去找该调用哪个实现类的那个方法咯。

另外一个原因就是因为在java中一个类只能有一个父类,就像一个人只能有一个父亲一样。但是一个类可以实现很多个接口,只要它愿意实现,这就为我们提供了方便之门。本来接口和父类就是非常相似的,起的作用也很相似,在UML中就把interface称作衍型,是对类这个概念的扩展或者是补充。突然想起一个比喻来形容父类和接口了:一个人只能有一个父亲,但是他可以有若干个叔叔或者舅舅,人有些特征像叔叔或者舅舅也是很正常的拉,^_^。在C++中一个类就可以有多个父类,这叫多重继承(multiple inheritance),在java中通过接口实现了这个功能。

2.  interface具有哪些特征

首先,接口不能够实例化,即不能对其使用new运算符,虽然我们不能创建接口对象,

但是可以声明接口变量,前面有示例;其次,接口中的方法都默认为public abstract类型的,实例都默认为pubic static final类型的,都不能使用任何其它的修饰符;再次,接口可以像类那样使用继承机制,当然必须都是接口咯。

 

抱歉!评论已关闭.