惊呆了!JDK1.8竟然打破了我对接口的一切认知...
云栖号资讯:【点击查看更多行业资讯】
在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来!
简介
我们通常所说的接口的作用是用于定义一套标准、约束、规范等,接口中的方法只声明方法的签名,不提供相应的方法体,方法体由对应的实现类去实现。
在JDK1.8中打破了这样的认识,接口中的方法可以有方法体,但需要关键字static或者default来修饰,使用static来修饰的称之为静态方法,静态方法通过接口名来调用,使用default来修饰的称之为默认方法,默认方法通过实例对象来调用。
静态方法和默认方法的作用:
静态方法和默认方法都有自己的方法体,用于提供一套默认的实现,这样子类对于该方法就不需要强制来实现,可以选择使用默认的实现,也可以重写自己的实现。当为接口扩展方法时,只需要提供该方法的默认实现即可,至于对应的实现类可以重写也可以使用默认的实现,这样所有的实现类不会报语法错误:Xxx不是抽象的, 并且未覆盖Yxx中的抽象方法。
示例
IHello接口
public interface IHello {
// 使用abstract修饰不修饰都行
void sayHi();
static void sayHello(){
System.out.println("static method: say hello");
}
default void sayByebye(){
System.out.println("default mehtod: say byebye");
}
}
HelloImpl实现类
public class HelloImpl implements IHello {
@Override
public void sayHi() {
System.out.println("normal method: say hi");
}
}
Main
public class Main {
public static void main(String[] args) {
HelloImpl helloImpl = new HelloImpl();
// 对于abstract抽象方法通过实例对象来调用
helloImpl.sayHi();
// default方法只能通过实例对象来调用
helloImpl.sayByebye();
// 静态方法通过 接口名.方法名() 来调用
IHello.sayHello();
// 接口是不允许new的,如果使用new后面必须跟上一对花括号用于实现抽象方法, 这种方式被称为匿名实现类,匿名实现类是一种没有名称的实现类
// 匿名实现类的好处:不用再单独声明一个类,缺点:由于没有名字,不能重复使用,只能使用一次
new IHello() {
@Override
public void sayHi() {
System.out.println("normal method: say hi");
}
}.sayHi();
}
}
执行结果:
normal method: say hi
default mehtod: say byebye
static method: say hello
normal method: say hi
这篇文章虽然简单,但是我觉得还是有必要分享一下,毕竟与1.7相比,发生了不少的变化,希望本文能对你有所帮助。
【云栖号在线课堂】每天都有产品技术专家分享!
课程地址:https://yqh.aliyun.com/zhibo立即加入社群,与专家面对面,及时了解课程最新动态!
【云栖号在线课堂 社群】https://c.tb.cn/F3.Z8gvnK
原文发布时间:2020-08-02
本文作者: 泡代码的小二黑
本文来自:“互联网架构师”,了解相关信息可以关注“互联网架构师”

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
-
上一篇
“万物就只是5万亿个参数”,AI模型GPT-3让人怀疑人生
云栖号资讯:【点击查看更多行业资讯】在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! 这几天轰动硅谷的 GPT-3 是什么来头? 相信不太了解 AI 的朋友这几天也或多或少看到了一些关于 GPT-3 的重磅消息,甚至有媒体称其为 “继比特币之后又一个轰动全球的现象级新技术”。 请注意,现在站在你面前的是:互联网原子弹,人工智能界的卡丽熙,算力吞噬者,黄仁勋的新 KPI ,下岗工人制造机,幼年期的天网 —— 最先进的 AI 语言模型 GPT-3。 1750 亿参数组成的训练模型 言归正传,OpenAI 的研究人员在上个月发表了一篇论文,描述了 GPT-3 的开发,正式发布了这个由 1750 亿个参数组成的 AI 语言模型。 在 NLP 领域中,通常采用 ELMo 算法的思想,即通过在大量的语料上预训练语言模型,然后再将预训练好的模型迁移到具体的下游NLP任务,从而提高模型的能力。GPT 模型是 OpenAI 在 2018 年提出的一种新的 ELMo 算法模型,该模型在预训练模型的基础上,只需要做一些微调即可直接迁移到各种 NLP 任务中,因此具有很强的业务迁移能力。 GPT...
-
下一篇
云计算之战:根基、生长和壁垒
云栖号资讯:【点击查看更多行业资讯】在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! 没有一家巨头会想错过定义未来世界的机会。这是不可逆的时间流里不再打开第二次的机会窗口。 2020年初,阿里云宣布在未来3年再投2000亿元,加码核心基础技术和面向未来的数据中心建设。今天,这一巨量投资的阶段性成果终于被披露:阿里云三座超级数据中心同步建成陆续开服,新增服务器规模超百万台。未来还将在全国建立10座以上的超级数据中心,支持新基建发展。 不仅是阿里,全球巨头都在加码。亚马逊、微软都集中在疫情之后急速扩张基础设施,一时间热钱涌动。资本也在押注,高盛将阿里云估值调高至近千亿美金,让人隐约看到AWS之于万亿美元帝国亚马逊的推动作用。 云计算不仅是巨头之战,更是未来基础设施之战,但如果仅仅是盖数据中心的生意,聪明的热钱也绝不会将目光聚焦于此。十多年前,当云的先驱者在服务器之上写下第一行虚拟化代码时,早已预示着,这是一种超越硬件的比拼、以一种全新形态为世界提供生产力的新物种。 云计算的未来之战,它的根基、生长和壁垒,必然是源于数据中心,又高于数据中心。 在杭州、南通和乌兰察布,三座超级数...
相关文章
文章评论
共有0条评论来说两句吧...