当前位置: 首页 > news >正文

佛山营销型网站云酒店网站建设

佛山营销型网站,云酒店网站建设,建一个个人网站多少钱,wordpress安全配置default 关键字:是在 Java 8 中引入的新概念,也可称为 Virtual extension methods——虚拟扩展方法与public、private等都属于修饰符关键字,与其它两个关键字不同之处在于default关键字大部分都用于修饰接口。 default 修饰方法时只能在接口…

default 关键字:是在 Java 8 中引入的新概念,也可称为 Virtual extension methods——虚拟扩展方法与public、private等都属于修饰符关键字,与其它两个关键字不同之处在于default关键字大部分都用于修饰接口。

default 修饰方法时只能在接口类中使用,在接口中被 default 标记的方法可以直接写方法体,而无需修改所有实现了此接口的类。

接口默认方法

我们都知道 Java 中的接口是用来实现的,接口中是没有实现的方法。

使用 default 关键字可以打破这个限制,当定义了一个接口,但是我们接口中的方法用了 default 关键字,我们就可以在这个方法中进行实现了。

这时,我们不需要再定义一个实现类类实现接口中的所有方法。

之前的接口是个双刃剑,好处是面向抽象而不是面向具体编程,缺陷是,当需要修改接口时候,需要修改该接口的全部实现类。

同时因为设计实现的问题,我们通过设计接口来进行不同的实现,在基础框架曾经,这个设计是有很多好处的。

但,在实际业务层,一个接口多个实现的方法反而谁增加很多复杂度。

使用 Default 关键字

用 default 关键字定义的方法是全局的,你可以在不同接口中定义一个相同的方法,这个没有问题。

如下图,我们在代码中定义了 2 个接口,这 2 个接口都有一个相同的 default 方法。

2023-10-20_16-23-41

实现类中只实现一个接口

如果在实现类中我们只实现一个接口。

例如下图,我们修改了我们的方法,我们在实现中只实现了 TestInterface1

2023-10-20_16-25-15

上面的程序也是可以运行的没有问题。

实现类中实现 2 个接口

问题就是在这里了。

如果我们在实现类中同时实现了 2 个接口,但这 2 个接口都有一个相同方法名的 default 方法。

2023-10-20_16-26-00

编译器会在这里报错,简单来说就是默认的方法冲突,程序不知道应该用哪个实现方法。

这个应该很好理解,因为这 2 个接口中都有相同的方法名,而且这个方面都是默认的,程序运行的时候确实不知道应该是用 TestInterface1 还是 TestInterface2 的默认方法。

所以可以在这里用一个 @Override 来告诉实现类,我们是用的那个实现方法。

甚至

    @Overridepublic void show() {TestInterface1.super.show();TestInterface2.super.show();}

这样写都是没有问题的。

运行的结果为:

Default TestInterface - 1 
Default TestInterface - 2

总结

Default 方法通常用在接口中,用于为接口中定义的方法提供一个默认的实现。

当我们使用了 default 关键字修饰了方法后,我们可以不为接口定义实现,而直接使用接口中定义的默认方法来处理逻辑。

2023-10-20_16-30-13

我们测试的代码网站逻辑如上图。

下面为文本的代码,供大家拷贝和在本地进行的是

interface TestInterface1 {// default methoddefault void show() {System.out.println("Default TestInterface - 1 ");}
}interface TestInterface2 {// Default methoddefault void show() {System.out.println("Default TestInterface - 2");}
}public class Main implements TestInterface1, TestInterface2 {private static final Logger logger = LoggerFactory.getLogger(Main.class);public static void main(String[] args) {new Main().show();}@Overridepublic void show() {TestInterface1.super.show();TestInterface2.super.show();}
}

因为 default 这个关键字还比较新,在 JDK 8 以后才有的,因此有必要在面试之前了解下,在实际的项目上,可能用的情况不多。

Java 中的 Default 关键字 - Java - iSharkFly

http://www.yayakq.cn/news/115437/

相关文章:

  • 网站源码怎么做建设工程业绩查询网站
  • 福田响应式网站建设服务手机网站建设的流程
  • 公司网站域名费用怎么交网站建设的生存期模型
  • 深圳微商城网站制作公司火车头采集wordpress发布
  • 个人网站的需求分析桥梁毕业设计代做网站
  • 网盘搜索 网站开发建设电动车官方网站
  • 防城港网站seo公司团建拓展训练
  • 织梦网站后台logo删除有关网站建设的文章句子
  • 为什么选择做游戏网站网站嵌入百度地图
  • 网页制作与网站建设宝典 pdf阳江市做网站的公司
  • 网站打开速度概念学校网站改版
  • 高端网站建设 源码北京个人网站制作
  • python+网站开发实例教程专门做宠物食品的网站
  • 做我的世界背景图的网站建设行政主管部门相关网站
  • 天津建设招标网站首页佛山新网站建设如何
  • 婚礼顾问网站介绍模版网络空间的三个特点包括哪些
  • 广西建设工程质检安全网站html5新特性
  • 怎么建国外网站莒县建设局网站
  • 中心建设投官方网站 软件下载产品推广目标怎么写
  • 站长工具站长湛江网站制作费用
  • 广州仿站定制模板建站欧亚专线快递查询单号查询
  • 网站建设除了凡科还有哪些做服装哪个网站图片多
  • app 门户网站做爰全过程免费网站的视频教程
  • 凡科建站教程河北建筑工程学院招生网
  • 企业网站在策划阶段最重要的工作是什么有什么好用的搜索引擎
  • 济南网站建设-中国互联企业网站建设公司有哪些
  • 公司网站如何做分录做搜狗网站点击
  • 网站建设的开发语言wordpress瀏覽器圖標
  • wordpress视频存储seo的工具有哪些
  • 龙岗区网站制作公司企业邮箱怎么查询