您的位置:首页 > 编程语言 > Java开发

Java 接口归纳

2016-01-02 11:56 323 查看

                                                                                        Java  接口归纳

     使用interface来定义一个接口。接口定义同类的定义类似,也是分为接口的声明和接口体,其中接口体由常量定义和方法定义两部分组成。接口中可以含有 变量和方法。但是要注意,接口中的变量会被隐式地指定为public static final变量(并且只能是public
static final变量,用private修饰会报编译错误),而方法会被隐式地指定为public abstract方法且只能是public abstract方法(用其他关键字,比如private、protected、static、 final等修饰会报编译错误),并且接口中所有的方法不能有具体的实现,也就是说,接口中的方法必须都是抽象方法(public abatract final void function())。从这里可以隐约看出接口和抽象类的区别,接口是一种极度抽象的类型,它比抽象类更加“抽象”,并且一般情况下不在接口中定义变量。

格式:

[修饰符] interface 接口名 [extends 父接口名列表]{
   [public] [static] [final] 常量;
   [public] [abstract] 方法;
}

修饰符:可选,用于指定接口的访问权限,可选值为public。如果省略则使用默认的访问权限。

接口名:必选参数,用于指定接口的名称,接口名必须是合法的Java标识符。一般情况下,要求首字母大写。

extends 父接口名列表:可选参数,用于指定要定义的接口继承于哪个父接口。当使用extends关键字时,父接口名为必选参数。

方法:接口中的方法只有定义而没有被实现。

接口中的方法和变量的默认修饰符: public abstract final.......

归纳:

(1)接口中的方法都是抽象的,不能被实例化对象

(2)当一个类实现接口时,如果这个类是抽象类(abstract class A),则实例化接口中的部分方法;如果不是抽象类,则需要实现接口中所有的方法。

(3)一个类通过implements 关键字实现接口,可以实现多个接口,多个接口之间用逗号隔开

    interface A{}

    interface B{}

    class X implements A,B{}

(4)一个接口可以通过extends 关键字来继承多个接口,接口之间用逗号隔开

   interface A{}

   interface B{}

   interface X extends A,B{}

(5)一个类在继承另外一个类的同时,还可以实现接口。规则,先继承,再实现(extends 必须位于 emplemenrs 之前)

  class A extends B implements C{}

抽象类与接口之间的区别

1.语法层面上的区别

  1)抽象类可以提供成员方法的实现细节,而接口中只能存在public abstract 方法;

  2)抽象类中的成员变量可以是各种类型的,而接口中的成员变量只能是public static final类型的;

  3)接口中不能含有静态代码块以及静态方法,而抽象类可以有静态代码块和静态方法;

  4)一个类只能继承一个抽象类,而一个类却可以实现多个接口。

2.设计层面上的区别

  1)抽象类是对一种事物的抽象,即对类抽象,而接口是对行为的抽象。抽象类是对整个类整体进行抽象,包括属性、行为,但是接口却是对类局部(行为)进行抽象。继承是一个 "是不是"的关系,而 接口 实现则是
"有没有"的关系。如果一个类继承了某个抽象类,则子类必定是抽象类的种类,而接口实现则是有没有、具备不具备的关系,比如鸟是否能飞(或者是否具备飞行这个特点),能飞行则可以实现这个接口,不能飞行就不实现这个接口。

  2)设计层面不同,抽象类作为很多子类的父类,它是一种模板式设计。而接口是一种行为规范,它是一种辐射式设计。对于抽象类,如果需要添加新的方法,可以直接在抽象类中添加具体的实现,子类可以不进行变更;而对于接口则不行,如果接口进行了变更,则所有实现这个接口的类都必须进行相应的改动。

参考目录:点击打开链接

   
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: