黑马程序员技术交流社区

标题: Java之接口 [打印本页]

作者: 百里青山    时间: 2016-4-8 12:00
标题: Java之接口
接口的作用
        让规范和实现分离,让软件系统的各组件之间面向接口耦合,是一种松耦合设计

     接口的定义
        1.接口使用interface关键字。
        2.接口不能有构造器和初始化块定义,可以包含Field(只是常量),方法(只能是抽象实例方法),内部类。
        3.接口里的所有成员,包括常量,方法,内部类和枚举类都是public访问权限。
        4.接口不允许有静态方法。
        5.接口允许定义内部类。

    系统给接口的默认设置
        1.对于接口里的常量Field,系统会自动给这些Field增加static和final两个修饰符。
        2.对于接口里的方法,它们只能是抽象方法,系统自动为其增加abstract修饰。
        3.对于接口内部类,系统会给内部类加上public static修饰,因为只能是静态内部类。

    接口的面向对象
        1.接口支持多继承。
        2.接口不能用于创建实例,但接口可以用于声明引用类型变量

    接口和抽象类在设计上的区别
        1.接口作为系统和外界交互的窗口,体现的是一种规范,接口的实现者(子类)必须向外提供那些服务(方法)
           接口是软件多个模块之间的耦合标准,当在多个应用程序之间使用接口时,接口是多个程序之间的通信标准。
        2.抽象类作为系统中多个子类的公共父类,体现的是一种模板式设计,抽象类作为多个子类的抽象父类,可以
           被当成系统实现过程中的中间产品,这个中间产品已经实现了系统的部分功能,但这个产品依然不能当成最
           终产品,必须进一步完善。

    接口和抽象类在用法上的区别
        1.接口只能包含抽象方法,抽象类可以包含普通方法。
        2.接口里不能定义静态方法,抽象类可以定义静态方法。
        3.接口只能定义常量Field,抽象类既可以定义普通Field,也可以定义静态常量Field。
        4.接口不包含构造器,抽象类里可以包含构造器。
        5.接口不包含初始化块,抽象类可以包含初始化块。
        6.一个类最多只能有一个直接父类,包括抽象类,但一个类可以直接实现多个接口。

     从设计上看接口和抽象类
        事物!接口表现为对事的抽象,抽象类表现对物的抽象,软件设计就是对事,物进行分离的过程!







欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2