关闭

Interface

标签: javainterface
719人阅读 评论(0) 收藏 举报
分类:

说明:
接口的定义:

(1)接口中的成员变量都是 public 、static 、final 的常量。
   在接口定义属性时,不管是否使用了 public static final 修饰符,其结果都是一样的,因为系统会自动增加这些修饰符。

(也就是说,public、static、final 都可以省略)

 

(2)接口中的方法都是 public 、abstract 的方法,仅有方法声明,没有方法体。接口中也可以没有任何方法。在接口定义方法时,不管是否使用了 public abstract 修饰符,其效果是一样的,系统会自动加上这些修饰符

 (也就是说,接口定义方法时 public、abstract 都可以省略;注意:但必须有返回类型!无论是否在接口中,所有的方法都必须有返回类型!!!)。

 

接口的使用:

【3】接口不能用于创建实例,但可以用于声明引用类型的变量。当使用接口声明引用类型的变量时,这个引用类型的变量必须引用到其实现类的对象。

(4)实现接口与继承父类类似,一样可以获得所实现接口里的常量属性、抽象方法、内部类和枚举类定义,同时也可以加入新的成员以满足实际问题的需要。

 

接口的继承:

(5)接口的继承:和类继承相似,子接口继承某个父接口,将会获得父接口里定义的所有常量属性、抽象方法、内部类和枚举类定义。与类不同的是,一个接口可以继承多个接口,继承它们的所有属性。显然,接口不能扩展类。

 

   看下面的例子:interface A extends B{...}
   这条语句表示定义了接口 A 并继承了接口 B ,使 A 成为 B 的子接口,并且 A 具有 B 的所有属性。接口继承过程中可能会出现以下情况:


   <1>方法重名:
    (1)如果两个方法完全一样,只只保留一个。
    (2)如果两个方法有不同的参数,那么子接口中包括两个方法,方法被重载。
    (3)如果两个方法仅在返回值上不同,程序会出现错误。


   <2>常量重名:
【1】两个重名常量全部保留,并使用原来的接口名作为前缀。

 

接口和抽象类的共同特征:
(1)接口和抽象类都不能被实例化,用于被其他类实现和继承。
【2】接口和抽象类都可以包含抽象方法,实现接口或继承抽象类的普通子类都必须全部实现这些抽象方法。

 

接口和抽象类的区别:
(1)抽象类既可以有实例变量,也可以有静态常量,而接口中不能有实例变量,而只能是静态(static)的常量(final)。
(2)抽象类中可以有非抽象方法,而接口中只能有抽象方法。
(3)抽象类只支持单继承,接口支持多继承。
【4】抽象类可以定义静态方法,而接口里不能定义静态方法。
(5)接口不包含构造方法;抽象类里可以包含构造方法,但并不是用于创建对象,而是让其子类调用这些构造方法来完成属于抽象类的初始化操作。
(6)接口里不能包含初始化块;而抽象类完全可以包含初始化块。


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:102703次
    • 积分:2777
    • 等级:
    • 排名:第13391名
    • 原创:178篇
    • 转载:0篇
    • 译文:0篇
    • 评论:1条
    最新评论