关闭

Interface

标签: javainterface
791人阅读 评论(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网站的观点或立场

接口(interface)那点事

1、接口(interface),在 java中有这个类型哦,这是语法哦。 public interface MyInterface { }语法还是很清晰的哦, 类的关键字是class、而接口改为interface即可哈。 2、接口(interface)与 接口(API) ? 答:相...
  • cadi2011
  • cadi2011
  • 2016-01-14 22:17
  • 706

[原]Java思想之容器implements与接口interface

http://homeway.me/ 0x01.About查了一些国内资料,都说java中extended与implements的区别是,一个类只能有一个继承,一个类可以有多个容器。后来去看了些国外资料。在我理解上,interface就是一个公共的类,可以包含公共函数、变量。Java接口是用...
  • u012992688
  • u012992688
  • 2015-04-15 00:35
  • 1955

【GoLang笔记】浅析Go语言Interface类型的语法行为及用法

Go不是一种典型的OO语言,它在语法上不支持类和继承的概念。 没有继承是否就无法拥有多态行为了呢?答案是否定的,Go语言引入了一种新类型—Interface,它在效果上实现了类似于C++的“多态”概念,虽然与C++的多态在语法上并非完全对等,但至少在最终实现的效果上,它有多态的影子。 那么,Go的I...
  • slvher
  • slvher
  • 2015-03-20 15:28
  • 5496

golang技术随笔(一)深入理解interface

Go语言的主要设计者之一罗布·派克( Rob Pike)曾经说过,如果只能选择一个Go语言的特 性移植到其他语言中,他会选择接口。可见接口在golang中的地位,及其对gloang这门语言所带来的活力。      golang中的interface...
  • justaipanda
  • justaipanda
  • 2015-01-26 19:13
  • 23834

@interface 在Android开发中的使用

@interface 在Android开发中的使用  引子:java用  @interface Annotation{ } 定义一个注解 @Annotation,一个注解是一个类。 在使用360桌面一键清理内存,或者点击...
  • huntersnail
  • huntersnail
  • 2015-05-28 15:40
  • 2039

java利用@interface定义元注解及使用实例

项目中遇到一个日志记录功能,记录登录系统用户的行为日志(对订单进行验单,发货,退款等操作)。使用了拦截器及注解的形式,来完成日志记录。 参考网络资源,写一个简单的demo,对java元注解知识进行一个梳理 demo资源目录结构如下: 1、利用@interface定义日志记录注解packag...
  • hurtheart517
  • hurtheart517
  • 2017-03-20 10:11
  • 899

个人对interface接口的理解

一句话"类是对象的抽象,接口抽得更厉害,是类的抽象",那这句话是什么意思呢?也就是类中包括很多其他的对象,是对象的一个集合,而这些对象就是类的属性或方法;而接口则包括许多类,但是他和类又有着不同。试想如果"接口"是要把类放到"接口"中,那么...
  • u013700636
  • u013700636
  • 2014-12-07 13:29
  • 1378

Win7 x64 Eclipse无法识别手机 / adb interface有黄色感叹号,无法识别

今天公司停电,因此把安卓项目带回宿舍做。宿舍的笔记本,装的是Win7 x64,手机连上电脑后,windows可以识别,但Eclipse的DDMS中却无法识别,什么都没有: 然后打开设备管理器查看,发现windows能正常识别设备(HUAWEI C8817E),而ADB Interface(...
  • zhouyingge1104
  • zhouyingge1104
  • 2014-12-25 14:20
  • 59787

关于Interface中定义变量的注意事项

最近在做项目的时候遇到了一个关于
  • u012062581
  • u012062581
  • 2014-09-06 23:35
  • 2732

Java 接口(interface)基本定义

接口是我们开发java项目,必须用到的方法,而接口是一种完全抽象的设计,没有任何实现。接口的特征:1.所有的成员变量都是public、static、final类型。 2.所有的方法都是public、abstract类型。 3.所有的嵌套类型(类或接口)都是public、static类型。 由此...
  • Google_huchun
  • Google_huchun
  • 2016-09-17 13:46
  • 872
    个人资料
    • 访问:148134次
    • 积分:3401
    • 等级:
    • 排名:第11346名
    • 原创:210篇
    • 转载:1篇
    • 译文:0篇
    • 评论:3条
    最新评论