Java默认方法
示例1
interface InterfaceA {
default void say() {
System.out.println("InterfaceA");
}
}
public class DefaultMethod implements InterfaceA{
public static void main(String[] args) {
new DefaultMethod().say();
}
}
输出
InterfaceA
示例2 实现类重写default方法
interface InterfaceA {
default void say() {
System.out.println("InterfaceA");
}
}
public class DefaultMethod implements InterfaceA{
public void say() {
System.out.println("DefaultMethod");
}
public static void main(String[] args) {
new DefaultMethod().say();
}
}
输出
DefaultMethod
示例3
interface InterfaceA {
default void say(double m) {
System.out.println("InterfaceA");
}
}
public class DefaultMethod implements InterfaceA{
public void say(int m) {
System.out.println("DefaultMethod");
}
public static void main(String[] args) {
DefaultMethod defaultMethod = new DefaultMethod();
defaultMethod.say(1);
defaultMethod.say(1L);
}
}
输出
DefaultMethod
InterfaceA
示例4
interface InterfaceA {
default void say() {
System.out.println("InterfaceA");
}
}
interface InterfaceAA extends InterfaceA{
void say();
}
public class DefaultMethod implements InterfaceAA{
public static void main(String[] args) {
DefaultMethod defaultMethod = new DefaultMethod();
defaultMethod.say();
}
}
输出 报错
示例5
interface InterfaceA {
default void say() {
System.out.println("InterfaceA");
}
}
interface InterfaceAA extends InterfaceA{
void say();
}
public class DefaultMethod implements InterfaceAA{
public static void main(String[] args) {
DefaultMethod defaultMethod = new DefaultMethod();
defaultMethod.say();
}
@Override
public void say() {
System.out.println("defaultMethod");
}
}
输出
defaultMethod
示例6
interface InterfaceA {
default void say() {
System.out.println("InterfaceA");
}
}
interface InterfaceB {
default void say() {
System.out.println("InterfaceB");
}
}
public class DefaultMethod implements InterfaceA,InterfaceB{
public static void main(String[] args) {
DefaultMethod defaultMethod = new DefaultMethod();
defaultMethod.say();
}
}
输出 报错
示例7
interface InterfaceA {
default void say() {
System.out.println("InterfaceA");
}
}
interface InterfaceB {
default void say() {
System.out.println("InterfaceB");
}
}
public class DefaultMethod implements InterfaceA,InterfaceB{
public static void main(String[] args) {
DefaultMethod defaultMethod = new DefaultMethod();
defaultMethod.say();
}
@Override
public void say() {
InterfaceA.super.say();
InterfaceB.super.say();
}
}
输出
InterfaceA
InterfaceB
Java默认方法的更多相关文章
- 深入理解Java 8 Lambda(语言篇——lambda,方法引用,目标类型和默认方法)
作者:Lucida 微博:@peng_gong 豆瓣:@figure9 原文链接:http://zh.lucida.me/blog/java-8-lambdas-insideout-language- ...
- Java 8函数编程轻松入门(三)默认方法详解(default function)
default出现的原因 Java 8中对API最大的改变在于集合类,Java在持续演进,但是它一直保持着向后兼容. 在Java 8中为Collection接口增加了stream方法,这意味着所有实现 ...
- JAVA 8 默认方法-Default Methods
什么是默认方法-Default Methods 简单的说,就是可以在接口中定义一个已实现方法,且该接口的实现类不需要实现该方法: 如下示例: interface GreetingService { v ...
- [转]深入理解Java 8 Lambda(语言篇——lambda,方法引用,目标类型和默认方法)
以下内容转自: 作者:Lucida 微博:@peng_gong 豆瓣:@figure9 原文链接:http://zh.lucida.me/blog/java-8-lambdas-insideout-l ...
- paip。java 高级特性 类默认方法,匿名方法+多方法连续调用, 常量类型
paip.java 高级特性 类默认方法,匿名方法+多方法连续调用, 常量类型 作者Attilax 艾龙, EMAIL:1466519819@qq.com 来源:attilax的专栏 地址:http ...
- Java 8 默认方法和多继承深入解析
以前经常谈论的Java对比c++的一个优势是Java中没有多继承的问题. 因为Java中子类只能继承(extends)单个父类, 尽管可以实现(implements)多个接口,但是接口中只有抽象方法, ...
- Java 8新特性探究(一) JEP126特性lambda表达式和默认方法
Lambda语法 函数式接口 函数式接口(functional interface 也叫功能性接口,其实是同一个东西).简单来说,函数式接口是只包含一个方法的接口.比如Java标准库中的java.la ...
- Java 8 特性 —— 默认方法和静态方法
Java 8 新增了接口的默认方法.简单说,默认方法就是接口可以有实现方法,而且不需要实现类去实现其方法.我们只需在方法名前面加个 default 关键字即可实现默认方法. 为什么要有这个特性?之前的 ...
- Java 8 默认方法
转自:https://www.runoob.com/java/java8-default-methods.html Java 8 新增了接口的默认方法. 简单说,默认方法就是接口可以有实现方法,而且不 ...
随机推荐
- Hihocoder1061-Beautiful String
时间限制:10000ms单点时限:1000ms内存限制:256MB 描述 We say a string is beautiful if it has the equal amount of 3 or ...
- 关于<marquee>、<form>、input中的<text>、<password>、<hidden>、<wenbenkuang>、<reset>、<image>、<submit>、<radio>、<checkbox>以及<select><iframe src>的用法
<html> <head> <meta charset="UTF-8"> <title></ ...
- 1.Vector(同步)和ArrayList(异步)异同
Vector线程同步,线程安全 ArrayList的运行速度较快,因为没有使用线程 请求方式:同步 异步未响应=假死 原因:1.占用内存过多,内存无法进行处理 2.并发量(本机的浏览器进行访 ...
- ansible yum 模块 安装 vsftp
[root@ftp:/root] > ansible ansible01 -u root -k -m yum -a 'name=vsftpd state=latest' SSH password ...
- 利用 ST-LINK Utility软件下载程序
先在电脑上安装STM32 ST-LINK Utility,软件安装一路Next就可以了,安装好软件之后界面如下: 下载程序只需要使用3个图标就可以了 第一个图标Connect to the ta ...
- com.alibaba.fastjson.JSONPathException: expect '], but 'y'
今天遇到这样的一个错误 网上查找了各种资料,终于找到了报错的原因: String dataType = (String) JSONPath.eval(dataset.getSchema(), &quo ...
- Ubuntu系统的Redis安装配置
Ubuntu系统的Redis安装配置 一. 安装Redis: 在Ubuntu系统下安装Redis数据库有两种方式: 方式一:下载最新的Redis版本(tar.gz格式),解压安装.操作如下: ...
- Android application framework 分析[in process]
application activity application service application UI system application sdk tool JVM 1 activity t ...
- 程序猿的量化交易之路(21)--Cointrader之Currency货币实体(9)
转载须注明出自:http://blog.csdn.net/minimicall? viewmode=contents,http://cloudtrader.top 货币,Cointrader中基本实体 ...
- NYOJ 815 三角形【海伦公式】
/* 关键点:海伦公式 解题人:lingnichong 解题时间:2014-10-04 21:48:47 解题体会:海伦公式的使用 */ 三角形 时间限制:1000 ms | 内存限制:65535 ...