java8新特性-默认方法
作为一个java程序猿,经常会被问基础怎么样,对于这个问题,我理解的有两方面:一是对于java基础的理解和掌握,比如JDK的相关特性;二是工作的经历,毕竟,语言编程是一门实战性质的艺术,就算掌握了千万理论,编写不出实际的代码,等于扯淡。而且,随着技术的革新,很多东西都不再是一成不变的,还记得刚出校门那会儿,面试官会问接口与类的区别啥的,大多人会回答:接口里面的全是抽象方法。这个回答在现在看来,或许已经过时了,随着JDK1.8的推出,接口里面也是可以有方法实现的。所以,在这里总结一下JDK1.8的几个常用的新特性,以备后用。
java8默认方法通过default关键字实现,在接口中通过default修饰,从而实现在接口中有方法的目的。这个特性可以从某种程度上简化代码量,比如有一个方法,所有的实现都相同,在java8以前,我们需要再接口的实现类中分别写些相同的代码,在java8及以后,我们可以将这个方法抽出来,放在接口中通过default关键字修饰实现,从而简化了代码。
举个栗子:
定义接口Car,并实现通用方法engine
public interface Car { /**
* @Description: Car引擎
* @return
*/
public default void engine() {
System.out.println("all car must have a engine");
} /**
* @Description: Car类型
* @return
*/
public void type();
}
实现类:
public class SuvCar implements Car { @Override
public void type() {
System.out.println("I'm a suv car");
}
}
测试类:
public class Test { public static void main(String[] args) {
Car car = new SuvCar();
car.engine();
car.type();
}
}
java8新特性-默认方法的更多相关文章
- Java8 新特性 默认方法
默认方法为什么出现 默认方法的出现是因为在java8设计的过程中,因为加入了Lamdba表达式,和函数式接口,所以在非常多的接口里面要加入新的方法,但是如果在接口里面直接加入新的方法,那么以前写的所有 ...
- java8新特性- 默认方法 在接口中有具体的实现
案例分析 在java8中在对list循环的时候,我们可以使用forEach这个方法对list进行遍历,具体代码如下demo所示 public static void main(String[] arg ...
- 乐字节-Java8新特性之方法引用
上一篇小乐介绍了<Java8新特性-函数式接口>,大家可以点击回顾.这篇文章将接着介绍Java8新特性之方法引用. Java8 中引入方法引用新特性,用于简化应用对象方法的调用, 方法引用 ...
- Java8新特性之方法引用&Stream流
Java8新特性 方法引用 前言 什么是函数式接口 只包含一个抽象方法的接口,称为函数式接口. 可以通过 Lambda 表达式来创建该接口的对象.(若 Lambda 表达式抛出一个受检异常(即:非运行 ...
- 2020你还不会Java8新特性?方法引用详解及Stream 流介绍和操作方式详解(三)
方法引用详解 方法引用: method reference 方法引用实际上是Lambda表达式的一种语法糖 我们可以将方法引用看作是一个「函数指针」,function pointer 方法引用共分为4 ...
- Java8新特性 -- Lambda 方法引用和构造器引用
一. 方法引用: 若Lambda体中的内容有方法已经实现了,我们可以使用“方法引用” 要求 方法的参数和返回值类型 和 函数式接口中的参数类型和返回值类型保持一致. 主要有三种语法格式: 对象 :: ...
- Java8新特性之方法引用
<Java 8 实战>学习笔记系列 定义 方法引用让你可以重复使用现有的方法定义,并像Lambda一样传递它,可以把方法引用看作针对仅仅涉及单一方法的Lambda的语法糖,使用它将减少自己 ...
- 2020你还不会Java8新特性?
Java8(1)新特性介绍及Lambda表达式 前言: 跟大娃一块看,把原来的电脑拿出来放中间看视频用 --- 以后会有的课程 难度 深入Java 8 难度1 并发与netty 难度3 JVM 难度4 ...
- Java8 新特性_Lambda 表达式
1. Java8新特性_简介 Lambda 表达式 函数式接口 方法引用与构造器引用 Stream API 接口中的默认方法与静态方法 新时间日期 API 减少空指针异常的容器 Optional 2. ...
随机推荐
- github常见操作和常见错误!错误提示:fatal: remote origin already exist
如果输入$ git remote add origin git@github.com:djqiang(github帐号名)/gitdemo(项目名).git 提示出错信息:fatal: remote ...
- T-SQL语法基础
一.T-SQL语言的分类 DDL-数据定义语言 create-创建 alter-修改 drop-删除(针对对象) DML-数据操作语言 Insert-插入 update-更新 delete-删除(针对 ...
- SQLite 的 EXISTS 与 NOT EXISTS
话不多说先来看看表结构: 显而易见 Pid 存放的 Person 的 id :下面重点(奇葩需求!!!!) 我需要向表一(Person)里插入几条数据(...)这时候不会对表二做任何操作. 需求:查询 ...
- Windows Server 2016-Powershell新建用户补充
前边我们介绍到Windows Server 2016-图形化新建域用户(一) 及 Windows Server 2016-批量新建域用户(二) ,里边提到了批量通过new-aduser常见帐号,这里简 ...
- python3 集合 操作方法
今天都是课, 就学这么点 不多说 睡觉睡觉!!! #!usr/bin/env/ python # -*- coding:utf-8 -*- # Author:XiaoFeng list = [1,2 ...
- Ocelot 资源汇总
前言 最近一两年.NET Core的关注度持续上升, 微服务及云原生应用开发上采用.NET Core也越来越多,Ocelot 作为.NET Core平台下一款开源的API 网关开发库越来越得到社区的认 ...
- PuppeteerSharp: 更友好的 Headless Chrome C# API
前端就有了对 headless 浏览器的需求,最多的应用场景有两个 UI 自动化测试:摆脱手工浏览点击页面确认功能模式 爬虫:解决页面内容异步加载等问题 也就有了很多杰出的实现,前端经常使用的莫过于 ...
- TensorFlow 2.0 Alpha pip安装指令
TensorFlow 2.0 Alpha目前已经可以通过pip安装,亲测有效,安装指令为: # 普通版本 pip install tensorflow==2.0.0-alpha0 # GPU版本 pi ...
- Servlet+JSP及Tomcat常见面试题(面试必备)
1. 什么是servlet? servlet是用来处理客户端请求并产生动态网页内容的java类 2. Tomcat的缺省端口是多少,怎么修改? a) 默认端口号是8080 b) ...
- [.NET跨平台]Jexus独立版本的便利与过程中的一些坑
本文环境与前言 之前写过一篇相关的文章:在.NET Core之前,实现.Net跨平台之Mono+CentOS+Jexus初体验 当时的部署还是比较繁琐的,而且需要联网下载各种东西..有兴趣的可以看看, ...