Java中的接口(interface)使抽象类的概念更深入一层。
接口(interface)是抽象方法和常量值的定义的集合。
从本质上讲,接口是一种特殊的抽象类,这种抽象类中只包含常量和方法的定义,而没有变量和方法的实现。
已经有类了,接口有什么意义?
有时必须从几个类中派生出一个子类,继承它们所有的属性和方法。但是,Java不支持多重继承。有了接口,就可以得到多重继承的效果。
接口中声明了方法,但不定义方法体,因此接口只是定义了一组对外的公共接口。接口只规定了一个类的基本形式,不涉及任何实现细节。实现一个接口的类,将具有接口规定的行为(方法)。
接口只定义了方法,没定义方法体,那接口的方法在哪里实现呢?
答案是:实现类。
举个例子,现实世界中有很多实体具有飞行功能,我们可以构造一个公共接口Flyer来描述飞行行为。该接口规定了三个方法:起飞(take off)、着陆(land)和飞行(fly)。这样,我们用Java语言来描述:
public interface Flyer{
public void takeoff();
public void land();
public void fly();
}
飞机(Airplane)就是我们很熟悉一种具有飞行能力的工具,鸟类(Bird)也是具有飞行能力。所以我们可以定义这两个抽象类。
飞机类:
public Airplane implements Flyer{
public void takeoff(){
System.out.println("飞机起飞“);
}
public void land(){
System.out.println("飞机着落“);
}
public void fly();{
System.out.println("飞机在飞“);
}
}
鸟类:
public Bird implements Flyer{
public void takeoff(){
System.out.println("鸟起飞“);
}
public void land(){
System.out.println("鸟着落“);
}
public void fly();{
System.out.println("鸟在飞“);
}
}
回到我们之前学习的项目。
建议面向接口开发:
先写接口-再写实现类
相当于:先制定策略,再实施。
–service、dao加入接口
接口与实现类的命名规范
接口:interface, 起名: IXxxService,例如:IStudentService,IStudentDao
实现类:implements 起名:XxxServiceImpl 例如:StudentServiceImpl,StudentDaoImpl
接口:I实体类层所在包名
实现类:实现类层所在包名Impl
以后使用接口/实现类时,推荐写法:
接口 x=new 实现类();
例如: IStudentDao studentDao=new StudentDaoImpl();
参考阅读:
java中接口(interface)详解