加入收藏 | 设为首页 | 会员中心 | 我要投稿 常州站长网 (https://www.0519zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长资讯 > 动态 > 正文

理解Java中接口存在的意义

发布时间:2021-04-07 12:47:32 所属栏目:动态 来源:互联网
导读:由于不能构造抽象类 Person的对象, 所以变量 p 永远不会引用 Person 对象, 而是引用诸如 Student这样的具体子类对象, 而这些对象中都重写了 getDescription方法。 2. 什么是接口 接口的本质其实也是一个类,而且是一个比抽象类还要抽象的类。怎么说呢?抽

由于不能构造抽象类 Person的对象, 所以变量 p 永远不会引用 Person 对象, 而是引用诸如 Student这样的具体子类对象, 而这些对象中都重写了 getDescription方法。

2. 什么是接口

接口的本质其实也是一个类,而且是一个比抽象类还要抽象的类。怎么说呢?抽象类是能够包含具体方法的,而接口杜绝了这个可能性,「在 Java 8 之前,接口非常纯粹,只能包含抽象方法,也就是没有方法体的方法」。而 Java 8 中接口出现了些许的变化,开始允许接口包含默认方法和静态方法,这个下文会讲解。

Java 使用关键字 interface 而不是 class 来创建接口。和类一样,通常我们会在关键字 interface 前加上 public 关键字,否则接口只有包访问权限,只能在接口相同的包下才能使用它。这里需要注意的是,你可以选择显式地声明接口中的方法为 public,但是「即使你不这么做,它们也是 public 的」。所以当实现一个接口时,来自接口中的方法必须被定义为 public。否则,它们只有包访问权限,这样在被继承时,它们的可访问权限就被降低了,这是 Java 编译器所不允许的。

另外,接口中是允许出现常量的,与接口中的方法都自动地被设置为 public—样,「接口中的域将被自动被设置为 public static final 类型」,例如:可以将接口方法标记为 public,将域标记为 public static final。有些程序员出于习惯或提高清晰度的考虑, 愿意这样做。但 Java 语言规范却「建议不要书写这些多余的关键字」。    ❞

3. 接口的特性

接口和类其中不同的一点就是,我们「无法像类一样使用 new 运算符来实例化一个接口」

(编辑:常州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读