接口中有默认方法实现
Java8允许我们使用default关键字,为接口声明添加非抽象的方法实现。

public interface DefaultInterFace {

    int plus(int x, int y);

    default int mul(int x, int y) {
return x*y;
} default int mul2(int x, int y) {
return x*x*y*y;
}
}
public class DefaultInterFaceImpl implements DefaultInterFace {

    @Override
public int plus(int x, int y) {
return x + y;
} // @Override
// public int mul(int x, int y) {
// return x*x*y*y;
// }
}
public class DefaultInterFaceTest {
@Test
public void testDefaultInterFace() {
DefaultInterFace defaultInterFace = new DefaultInterFaceImpl();
System.out.println(defaultInterFace.plus(5, 6));
System.out.println(defaultInterFace.mul(5, 6));
System.out.println(defaultInterFace.mul2(5, 6));
}
}

  Java8中接口和抽象类的比较
相同点:
都能定义方法和属性(之前接口不能定义方法)。
抽象类和接口都可以不含有抽象方法。
抽象类和接口都不能创建对象。
继承和实现接口或抽象类的子类必须实现接口或抽象类的所有的方法。

不同点:
属性上,抽象类可以用各种各样的修饰符修饰。而接口的属性是默认的public static final
抽象类中可以含有静态代码块和静态方法,而接口不能含有静态方法和静态代码块。
抽象类可以含有构造方法,接口不能含有构造方法。
抽象类表示的是IS-A的关系,接口则表示LIKE-A的关系。
接口只能继承接口。而抽象类可以继承普通的类,也能继承接口和抽象类。

Java8简明学习之接口默认方法的更多相关文章

  1. 乐字节-Java8核心特性实战-接口默认方法

    JAVA8已经发布很久,是自java5(2004年发布)之后Oracle发布的最重要的一个版本.其中包括语言.编译器.库.工具和JVM等诸多方面的新特性,对于国内外互联网公司来说,Java8是以后技术 ...

  2. java 8 接口默认方法

    解决问题:在java8 之前的版本,在修改已有的接口的时候,需要修改实现该接口的实现类. 作用:解决接口的修改与现有的实现不兼容的问题.在不影响原有实现类的结构下修改新的功能方法 案例: 首先定义一个 ...

  3. 乐字节-Java8新特性-接口默认方法

    总概 JAVA8 已经发布很久,而且毫无疑问,java8是自java5(2004年发布)之后的最重要的版本.其中包括语言.编译器.库.工具和JVM等诸多方面的新特性. Java8 新特性列表如下: 接 ...

  4. Java8新特性之四:接口默认方法和静态方法

    在JDK1.8以前,接口(interface)没有提供任何具体的实现,在<JAVA编程思想>中是这样描述的:"interface这个关键字产生了一个完全抽象的类,它根本就没有提供 ...

  5. Java8系列 (四) 静态方法和默认方法

    静态方法和默认方法 我们可以在 Comparator 接口的源码中, 看到大量类似下面这样的方法声明 //default关键字修饰的默认方法 default Comparator<T> t ...

  6. Java8系列 (四) 静态方法和默认方法(转载)

    静态方法和默认方法 我们可以在 Comparator 接口的源码中, 看到大量类似下面这样的方法声明 //default关键字修饰的默认方法 default Comparator<T> t ...

  7. JDK8新特性之接口默认方法与静态方法

    接口默认方法与静态方法 有这样一些场景,如果一个接口要添加一个方法,那所有的接口实现类都要去实现,而某些实现类根本就不需要实现这个方法也要写一个空实现,所以接口默认方法就是为了解决这个问题. 接口静态 ...

  8. 常用的函数式接口Function接口和常用的函数式接口Function接口默认方法andThen

    常用的函数式接口Function接口 package com.yang.Test.FunctionStudy; import java.util.function.Function; /** * ja ...

  9. Java8新特性第2章(接口默认方法)

    在Java中一个接口一旦发布就已经被定型,除非我们能够一次性的更新所有该接口的实现,否者在接口的添加新方法将会破坏现有接口的实现.默认方法就是为了解决这一问题的,这样接口在发布之后依然能够继续演化. ...

随机推荐

  1. class字节码结构(零:补充:class结构,常量池,字节码指令)

    JVM高级特性与实践(五):实例探究Class类文件 及 常量池 JVM高级特性与实践(六):Class类文件的结构(访问标志,索引.字段表.方法表.属性表集合) JVM高级特性与实践(七):九大类字 ...

  2. Oracle 常见字符操作

    一.拼接 1.使用 || 来实现 SELECT '你'||'好!' title FROM dual; 2.使用concat (不支持多个字符串的拼接,但是可以嵌套调用) SELECT concat(' ...

  3. 部分替换mysql表中某列的字段

    UPDATE `table_name` SET `field_name` = replace (`field_name`,'from_str','to_str') WHERE `field_name` ...

  4. python基础笔记之注释三种方法

    ---恢复内容开始--- 1,,单行注释  用# 2,多行注释 用 “”” dddd""" 3,较长行虽然分行写但是只是注释,最终显示为一行:用 \ ---恢复内容结束- ...

  5. 手淘的移动端适配方案flexible

    基于 vue-cli 配置手淘的 lib-flexible + rem,实现移动端自适应 安装 flexible npm install lib-flexible --save 引入 flexible ...

  6. android学习-LocationManager(一)-定位方式原理解析

    参考资源:android 4种定位原理及实现——1 android使用不同的方法为应用提供位置信息. 定位的方式有三种:GPS地位(A-GPSAssistedGPS:辅助全球卫星定位系统,或者是同步G ...

  7. solr 7.6 安装部署与遇到的问题

    目录 安装 solr 配置solr 到tomcat(关键) 配置依赖包 创建tomcat solr 的 classes 文件 创建 solr 的core 的主目录(也就是存放core的位置) 修改配置 ...

  8. Linux-(which,whereis,locate,find)

    我们经常在linux要查找某个文件,但不知道放在哪里了,可以使用下面的一些命令来搜索: which  查看可执行文件的位置. whereis 查看文件的位置. locate   配合数据库查看文件位置 ...

  9. java将System.out.println的输出导出到文件中

    直接看代码 public static void saveStreamToFile(String savePath,String input){ try { //savePath like c:/lo ...

  10. Oracle 12c 操作 CDB PDB

    CREATE TRIGGER open_all_pdbs AFTER STARTUP ON DATABASE BEGIN EXECUTE IMMEDIATE 'alter pluggable data ...