首页 /  技术专区  /  Java 宽屏模式 >

接口

1.  什么是接口

接口(Interface),在JAVA编程语言中是一个抽象类型,是抽象方法的集合。接口通常以interface来声明。一个类通过继承接口的方式,从而来继承接口的抽象方法。

如果一个类只由抽象方法和全局常量组成,那么这种情况下不会将其定义为一个抽象类。只会定义为一个接口,所以接口严格的来讲属于一个特殊的类,而这个类里面只有抽象方法和全局常量,就连构造方法也没有。

2.  接口语法:

public interface MyInterface {

    public void foo()

    //其他方法

}

3.  如何使用接口

public class UDisk implements UsbInterface {

    public void service() {

        System.out.println("连接USB口,开始传输数据。");

    }

}

4.  接口的特性

Ø  接口不可以被实例化。

Ø  实现类必须实现接口的所有方法。

Ø  实现类可以实现多个接口。

Ø  接口中的变量都是静态常量。

5.  接口表示一种能力

体现在接口的方法上,满足has a的关系。

程序设计时:

Ø  关心实现类有何能力,而不关心实现细节。

Ø  面向接口的约定而不考虑接口的具体实现。

6.  JDK8新增的接口特性

1. JDK1.8后,接口里可以有默认方法(方法体)了

default关键字-默认方法

    ➢默认方法可以被继承,通过实例调用

    ➢如果一个类实现了多个接口,多个接口都定义了多个同样的默认方法

            方案一:实现类需要覆盖重写接口中的默认方法不然会报错

            方案二:可以使用super来调用指定接口的默认方法

    ➢如果一个类继承了一一个抽象类,实现了一一个接口,抽象类和接口存在相同的方法

            采取类优先的原则,优先继承抽象类的方法

    ➢接口默认方法可以有多个

2. JDK 1.8后,接口里可以声明(并且可以提供实现)的静态方法了

    ➢接口中的静态方法必须是public的, public修饰符可以省略, static修饰符不能省略

    ➢静态方法不能被继承及覆盖,所以只被具体所在的接口调用

    ➢接口中静态方法可以有多个

7.  抽象类和接口

相同点:

    ◆代表系统的抽象层

    ◆都不能被实例化

    ◆都能包含抽象方法

            用于描述系统提供的服务,不必提供具体实现

不同点:

    ◆在抽象类中可以为部分普通方法提供默认实现, JDK8之前接口中只能包含抽象方法, JDK8之后接口可包含默认方法

    ◆一个类只能继承一个直接的父类,但可以实现多个接口


使用原则:

    ◆is a --抽象类; has a --接口

    ◆接口做系统与外界交互的窗口

➢接口提供服务

    ◆接口本身一旦制定,就不允许随意修改

    ◆抽象类可完成部分功能实现,还有部分功能可作为系统的扩展点

    ◆抽象类便于复用,接口便于功能扩展和维护


上一篇: 多态
下一篇: 异常

头像
0/200
图片验证码