Java8允许我们给接口添加一个非抽象的方法实现只需要使用default关键字即可 为啥要做此改动
因为大家都觉得很有用,就这么简单。
譬如 Java 8 给 Collection 加入了一个 stream 方法,你可以想想如果没有默认函数的话,api 会变成多么鬼畜的样子。
对这个功能感兴趣的话,可以看看这个:http://cr.openjdk.java.net/~briangoetz/lambda/Defender%20Methods%20v4.pdf,里面有对引入这个功能原因的说明:
Once published, it is impossible to add methods to an interface without breaking existing implementations. (Specifically, adding a method to an interface is not a source- compatible change.) The longer the time since a library has been published, the more likely it is that this restriction will cause grief for its maintainers.
■网友
因为引入函数式编程要添加太多接口,会有不向下兼容的风险,索性就给接口加上默认方法的特性,皆大欢喜。
■网友
当牵涉到修改一个流行了20年,有着最广泛最庞大库代码累计,目前业界最重要编程语言的一个核心语言概念时,既要兼容成千上万的代码,又要加入新的功能,这应该是唯一的选择。
■网友
主要还是为了兼容你想想新的collection里面多了很多新方法,如果没有默认实现,以前的代码都需要改一遍,这谁受得了
■网友
【Java8允许我们给接口添加一个非抽象的方法实现只需要使用default关键字即可 为啥要做此改动】 多继承吧,java只允许继承一个类,实现多个接口,之前想要实现多继承很费劲,要搞个内部类啥的(不懂的请自行查阅相关资料),现在加了这个可以实现方法的接口,就可以很轻易地实现多继承了
推荐阅读
- 用泡沫箱来养多肉老桩?只要我们把细节做好,同样可以养出状态来
- 沉船■长江千吨级沉船打捞记:守护“微笑天使”我们在行动!
- 『我们』无问西东】石奶引的荷包鼓了 【小康路上
- 接待日|省生态环境厅来通开展“企业环保接待日”
- 趣头条|我想给陪伴我们多年的桑塔纳一篇纪念文
- 搜狐新闻|欧拉好猫10.38万起贵不贵?我们采访了一位男性KOL发现……| 聚闻
- |我们不会忘记,广大苏商苏企挺身而出、“以义战疫”的情怀担当——奋不顾身,彰显家国情怀
- 小孩子|我害怕”婴儿真能看到我们看不见的东西?真相来了“妈妈
- 趣头条|透过e-tron FE07赛车,奥迪在向我们传递什么信息?
- |全网好评的吉利星瑞,真这么好?为此,我们做了2000公里的长测
