Java接口面面观

在介绍接口以前,咱们先了解了解它的兄弟“继承”先生。编程

 

在面向对象编程中,继承避免了多个类间重复定义共同行为,既帮咱们节约了时间也节约了系统资源。看起来继承对咱们有莫大的帮助,可是实际编程中咱们应该少用继承。为何呢?学习

 

其中的缘由不少,笔者以为最大的一个缘由是继承强调了一种"is a"的关系,即“是一种”的关系。spa

 

好比说麻雀是一种鸟,鲫鱼是一种鱼。这就会带来一个问题了,假设有一个东西它和鸟同样会飞,像鱼同样能在水里游,那它就必定是一种鸟一种鱼么。答案固然是否认的。设计

 

这样若是在程序中,多个类有同一种行为,能把它们都继承自一个父类么?若是你不怕天下大乱,我想你能够试试看。对象

 

不过不用怕,还好接口来了。网上看到一个对接口的描述,我以为很是不错。继承

 

他说接口是一个标准,生活中有不少接口。好比说水龙头管接口、电源接口等。之前水龙头生产商在采用接口以前,厂商要同时提供水龙头和下水管,他们是一体的不能变动。同时也只适用于他的一种产品。而有了接口以后,厂商就不用管他的下水管如何设计了,只用按照接口标准来生产水龙头,完成后直接接到下水管上就能够了。这就是面向接口,这样你的下水管就可使用全部的符合下水管标准的水龙头,而不是以前的一种水龙头。很明显如今更换水龙头也更加的方便。接口

 

接口是对一种行为的定义,不一样类能够有同一种行为。这样使得接口和实现分离,适用于团队的协做开发。主要为了实现松散耦合的系统,便于之后升级扩展。资源

 

另外继承就像是类的亲爹,而接口是类的干爹。亲爹只有一个,而干爹能够认不少个。其实也很好理解,继承强调"is a"关系,固然只能是一种。而接口定义的是行为,一个类必然能够有多种行为。开发

 

具体语法层面,定义行为使用interface关键字,且接口中的方法不能操做必须是抽象的,直接表示为abstract,且必定是public。产品

如public interface Swimmer{

      public abstract void swim();

}

 

使用接口必须使用implements关键字,此时对接口中定义的方法有两种处理方式,一是操做接口中定义的方法,二是再度将该方法标示为abstract.

public abstract class Fish implements Swimmer{

...

}

 

另外接口能够继承别的接口,也可同时继承两个以上的接口,一样也是使用extends关键字,表明了继承父接口的行为。

 

接口的使用大部分都在比较大的项目中,所以在初学编程时并无机会接触到接口,随着学习的深刻相信会对接口的使用有更多的感触。

相关文章
相关标签/搜索