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

建网站要学哪些软件/搜索引擎营销优化策略有哪些

建网站要学哪些软件,搜索引擎营销优化策略有哪些,武汉seo代理商,div做网站Java8 以前的interface接口机制中,接口中的方法不能有具体的实现,全部要为空方法,实现类必须全部实现相关的方法。但若上层接口需要做改变的时候(如增加新的空方法),下层接口就需要实现新增的方法&#xff…

Java8 以前的interface接口机制中,接口中的方法不能有具体的实现,全部要为空方法,实现类必须全部实现相关的方法。但若上层接口需要做改变的时候(如增加新的空方法),下层接口就需要实现新增的方法,在某些情况下,变得不灵活,Java8接口新增default方法,可如下定义:

public interface SomethingIsWrong {
default void aMethod(int aValue) {System.out.println("Hi Mom");
}
}

Default方法使用场景:
通常都是用于在已有的接口中添加新的方法,可以避免其实现类都做出相应的改动,且default方法通常使用已经存在的方法进行定义。

扩展含有default方法的接口会遇到以下三种情况:
1. 不在扩展接口中提及原default方法,则所有实现该接口的类都默认实现原接口中的default方法。
2. 重新声明和default方法名一致的方法(包括形参列表),则新接口的实现类必须实现该方法。
3. 扩展接口重新定义该default方法,注意要加default关键字,则会复写原接口中的default方法。
4. 如果该接口的实现类重新声明和default方法名一致的方法(包括形参列表),则会复写原接口中的default方法。
5. 如果一个类实现的两个接口含有相同的default方法,且这两个接口无继承关系,则该类必须明确复写该default方法,否则会发生编译错误。若这两个接口有继承关系,则会明确的接口胜过上层接口,即在实现类中表现为更明确的接口中的方法。如下代码所示,

interface A {
default void doSth() {System.out.println("inside A");
}interface B {}interface C extends A {
default void doSth() {System.out.println("inside C");}
}class App implements C, B, A {public static void main(String[] args) {new App().doSth();}
}

这将打印出inside C

interface A {
default void doSth() {System.out.println("inside A");
}
}interface B {
default void doSth() {System.out.println("inside B");
}class App implements B, A {@Override
public void doSth() {B.super.doSth();
}public static void main(String[] args) {new App().doSth();}
}

这将会打印出inside B。

参考:
http://blog.csdn.net/u013291394/article/details/52551180?hmsr=toutiao.io&utm_medium=toutiao.io&utm_source=toutiao.io
参考Java官网文档:
https://docs.oracle.com/javase/tutorial/java/IandI/defaultmethods.html

Static 方法:
static方法和default方法类似,但在其实现类中不能进行复写该方法,This feature helps us in avoiding undesired results incase of poor implementation in implementation classes.

public interface MyData {default void print(String str) {if (!isNull(str))System.out.println("MyData Print::" + str);
}static boolean isNull(String str) {System.out.println("Interface Null Check");return str == null ? true : "".equals(str) ? true : false;}
}public class MyDataImpl implements MyData {public boolean isNull(String str) {System.out.println("Impl Null Check");return str == null ? true : false;
}public static void main(String args[]){MyDataImpl obj = new MyDataImpl();obj.print("");obj.isNull("abc");}
}

接口中的方法都默认为public,所以无需加public修饰,此处MyDataImpl中的isNull只是一个普通的类方法,并没有重写MyData中的isNull方法,
如果在isNull() 方法之前加了 @Override annotation ,则编译出错。
以上代码输出为:
Interface Null Check
Impl Null Check

如果将MyData中的isNull方法从static改为 default,那么输出结果为:
Impl Null Check
MyData Print::
Impl Null Check

Java interface的static方法只对interface里的方法可见,如果将MyDataImpl中的isNull移除,那么MyDataImpl实例就无法使用isNull方法。和其他静态方法类似,可以使用类名来调用接口中的静态方法,如下语句是合法的:

boolean result = MyData.isNull(“abc”);

Java interface的static方法几点注意事项:
1. 该static方法属于interface的一部分,不能在其实现类的实例中直接使用
2. Java interface的static方法有利于提供通用的方法,比如判空检查,集合排序等。
3. Java interface的static方法通过禁止实现类复写该方法,来帮助我们提供安全保障。
4. 不能在类的方法中定义和interface的static方法名一致签名的静态方法,会编译出错,
如果实现类复写和interface的static方法名一致签名的普通方法,用实现类的实例调用该方法时,实际调用的为实现类中的方法。
5. 通过使用Java interface的static方法,我们可以移除工具类,比如Collections,并且把所有工具类中的静态方法移动到一致的接口当中,以便于查询和使用。(待论证)

原文参考链接:
http://www.journaldev.com/2752/java-8-interface-changes-static-method-default-method

进一步理解Java 8 default方法可以参考下文:
https://my.oschina.net/benhaile/blog/176007

http://www.jmfq.cn/news/5105557.html

相关文章:

  • 广西南宁建设银行最新招聘网站/找精准客户的app
  • 泉州做网站seo的/雏鸟app网站推广
  • 优秀html5网站/搜索引擎seo如何赚钱
  • 家具网站模版/关键词长尾词优化
  • 广东省建网站公司/seo快速排名服务
  • 网站源代码怎么下载/学历提升
  • 政府门户网站建设/福州seo推广外包
  • 可以做视频推广的网站有哪些内容/网站大全
  • seo网站优化推广怎么做/浏览器网站大全
  • 重庆忠县网站建设报价/靖江seo要多少钱
  • 网站上添加子栏目/app拉新接单平台
  • 营销型企业网站建设的内容/企业网站模板建站
  • jsp怎么做动态网站/化妆品营销推广方案
  • 汉化主题做网站/网络营销推广服务
  • 招聘信息网站/三亚百度推广公司
  • 网络营销外包团队哪些好/亚马逊seo关键词优化软件
  • 自己怎么做网站建设/百度seo规则最新
  • 做网站大概要多少钱/搜索引擎优化排名seo
  • 建设工程扣分查询网站/青岛seo网站建设公司
  • 网站设计包含哪些技术/seo有什么作用
  • 微网站无锡/搜索引擎有哪些
  • iis 网站显示建设中/浏览器广告投放
  • 福州网站建设方案开发/优化网站找哪家
  • 用ps做网站广告图/最新seo课程
  • 网站如何做信誉认证/sem竞价专员
  • 易居做网站/安卓优化大师新版
  • wordpress页面html/揭阳百度快照优化排名
  • 怎样推广自己/北京网站优化价格
  • 做网站的心得体会/百度seo关键词排名优化教程
  • 做吗查网站的流量/东莞seo软件