default关键字
default关键字在JDK8中有两个用处。
1.在switch语句的时候使用default
int gender = 3;
String genderString;
switch (gender) {
case 1: genderString = "male";
break;
case 2: genderString = "female";
break; break;
//如果case没有匹配的值,那么肯定是LGBT
default: genderString = "LGBT";
break;
}
System.out.println(genderString);
当case里的值与switch里的key没有匹配的时候,执行default里的方法。
2. 在定义接口的时候使用default来修饰具体的方法
interface IntefercaeDemo {
//具体方法
default void showDefault(){
System.out.println("this is showDefault method");
}
//具体方法
static void showStatic(){
System.out.println("this is showStatic method");
}
//没有实现的抽象方法
void sayHi();
}
class LearnDefault implements IntefercaeDemo{
//实现抽象方法
@Override
public void sayHi() {
System.out.println("this is sayHi mehtod");
}
public static void main(String[] args) {
//接口中被static所修饰的具体方法
IntefercaeDemo.showStatic();
//将实现了IntefercaeDemo的类实例化
LearnDefault learnDefault = new LearnDefault();
//被Default所修饰的具体方法可以通过引用变量来调用
learnDefault.showDefault();
JDK8中为了加强接口的能力,使得接口可以存在具体的方法,前提是方法需要被default或static关键字所修饰。
这样做的好处是接口的每个实现类如果都想要相同的功能,就不需要重复代码,而是在接口进行定义即可。
默认方法在子类也可以被重写。
default关键字的更多相关文章
- default 关键字泛型代码中的默认关键字(C# 编程指南)
在泛型类和泛型方法中产生的一个问题是,在预先未知以下情况时,如何将默认值分配给参数化类型 T: T 是引用类型还是值类型. 如果 T 为值类型,则它是数值还是结构. 给定参数化类型 T 的一个变量 t ...
- C# 7.1中default关键字的新用法
default 关键字有两类用法 switch语句中指定默认标签 默认值表达式 switch 语句 int caseSwitch = 1; switch (caseSwitch) { case 1: ...
- C#default关键字(泛型代码中的默认关键字)
在泛型类和泛型方法中产生的一个问题是,在预先未知以下情况时,如何将默认值分配给参数化类型 T:T 是引用类型还是值类型.如果 T 为值类型,则它是数值还是结构.给定参数化类型 T 的一个变量 t,只有 ...
- 泛型代码中的 default 关键字
在泛型类和泛型方法中会出现的一个问题是,如何把缺省值赋给参数化类型,此时无法预先知道以下两点: l T将是值类型还是引用类型 l 如果T是值类型,那么T将是数值还是结构 对 ...
- MYSQL auto_increment 、default 关键字
1. auto_increment: innoDB 中 表中只可以有一个列是auto_increment的,这个列还一定要是索引. create table T(X int auto_incremen ...
- c++ default关键字
PicServer() = default; ~PicServer() = default; CString 似乎也可以写出来, https://blog.csdn.net/a1875566250 ...
- C++11的default和delete关键字
C11的新特性实在是太多了,这2个关键字关注的人倒是少了很多,其中有一个原因便是编译器支持得太慢了(VS到VS2013才支持上),不过这2个关键字那真是极为有用的,下面我们来看看. [default关 ...
- C#中泛型默认关键字(default)详解
我们在泛型类和泛型方法中产生的一个问题是,在预先未知以下情况时,如何将默认值分配给参数化类型 T:(T 是引用类型还是值类型?)对此我们将如何处理? C#代码实例: /// <summary&g ...
- C# default(T)关键字
C#关键词default函数,default(T)可以得到该类型的默认值. C#在类初始化时,会给未显示赋值的字段.属性赋上默认值,但是值变量却不会. 值变量可以使用默认构造函数赋值,或者使用defa ...
随机推荐
- 阶段3 2.Spring_05.基于XML的IOC的案例1_2 基于XML的IOC的案例-编写spring的Ioc配置
首先配置service对象,配置完Service对象就是注入dao对象. 但是现在没有dao对象,那就需要先配置dao对象.dao配置好以后.上线dao的注入就可以通过refs对象来注入这个dao了 ...
- 2018.04.02 matplotlib 图名,图例,轴标签,轴边界,轴刻度,轴刻度标签
import numpy as np import pandas as pd import matplotlib.pyplot as plt df = pd.DataFrame(np.random.r ...
- No module named 'pip'
https://blog.csdn.net/wuyepiaoxue789/article/details/84033651 可以首先执行 python -m ensurepip 然后执行 pyth ...
- shell历史命令
1.每分钟备份历史命令 制定计划任务:每分钟执行备份历史命令的脚本 注意:要用python写计划任务脚本,因为用shell脚本写的计划任务总是不执行 先写脚本: [root@master ~]# ca ...
- Capabilities 入门教程:基础实战篇
该系列文章总共分为三篇: Linux Capabilities 入门教程:概念篇 Linux Capabilities 入门教程:基础实战篇 待续... 上篇文章介绍了 Linux capabilit ...
- DocX 在文档中插入图片时,为什么不能按实际设置的大小插入,而Spire.Doc却可以
我的目标目标要求:将一个图片插入到页面中,页面边界为0,使用下面的代码去实现(button1UseDocX_Click函数),生成的文档不能达到目的.而使用Spire.Doc却能达到目的button1 ...
- elasticsearch索引大小写的问题
今天用elasticsearch创建索引时碰到一个问题,用大写创建的索引,ES前端插件可以看到用大写创建索引存入的数据 程序启动,搜索的时候,却不显示数据,索引变成了小写,导致数据无法封装传入. 在h ...
- 2D轮播图
目录结构 index.html <!DOCTYPE html><html lang="en"><head> <meta charset=& ...
- sublime3配置php开发环境
Sublime3 3143 1.用包管理器安装SublimeLinter ctrl+shift+p Package Control: install package SublimeLinter 注意: ...
- centos没有ifcfg-eth0或者ifcfg-eth0文件内容为空
虚拟机安装好CentOS 6系统后,发现ip在每次重启后都会还原,用ifconfig查看是有eth0网卡的(也有可能只有回环网卡lo),于是查看eth0网卡配置文件,发现在 /etc/sysconfi ...