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 新增了接口的默认方法. 简单说,默认方法就是接口可以有实现方法,而且不 ...
随机推荐
- iOS开发——自动填充短信验证码
苹果在iOS 12,改进了一个很人性化的小细节.在做短信验证码功能的时候,自动获取短信中的验证码,然后点击填充即可.不用再向之前那样麻烦,自己看到弹出的短信信息后,死记硬背,再一个个敲上去,害怕背错了 ...
- 小学生绞尽脑汁也学不会的python(面对对象-----类与类之间的关系)
小学生绞尽脑汁也学不会的python(面对对象-----类与类之间的关系 1. 依赖关系. 最轻的一种关系 在方法中引入另一个类的对象 class Elephant: def __init__(sel ...
- nignx 502错误不能使用/的路径方式 即pathinfo
在server中加入 include enable-php-pathinfo.conf; 引入nginx.conf下的这个文件即可. 如果是tp框架,主要隐藏index.php的入口文件,再加入下面这 ...
- tp框架表单提交注意!不要提交到当前方法
tp框架 表单提交到当前方法,会重复执行显示部分和保存部分的代码.导致不知名的错误.
- Mysql学习总结(35)——Mysql两千万数据优化及迁移
最近有一张2000W条记录的数据表需要优化和迁移.2000W数据对于MySQL来说很尴尬,因为合理的创建索引速度还是挺快的,再怎么优化速度也得不到多大提升.不过这些数据有大量的冗余字段和错误信息,极不 ...
- mysql 全表扫描、全索引扫描、索引覆盖(覆盖索引)
full index scan:全索引扫描,查询时,遍历索引树来获取数据行.如果数据不是密集的会产生随机IO 在执行计划中是Type列,index full table scan:通过读物理表获取数据 ...
- CentOS进入图形界面
CentOS进入图形界面 学习了: http://www.centoscn.com/CentosBug/osbug/2014/0831/3620.html http://bbs.csdn.net/to ...
- Spring+mybatis+struts框架整合的配置具体解释
学了非常久的spring+mybatis+struts.一直都是单个的用他们,或者是两两组合用过,今天总算整合到一起了,配置起来有点麻烦.可是配置完一次之后.就轻松多了,那么框架整合配置具体解释例如以 ...
- ios中NSUserDefaults的使用方法
ios中NSUserDefaults的使用方法 NSUserDefaults类提供了一个与默认系统进行交互的编程接口.NSUserDefaults对象是用来保存.恢复应用程序相关的偏好设置,配置数据等 ...
- WPF错误:必须使“Property”具有非 null 值。
这个问题一般出如今Triggers中Property指定的类型为Nullable. 解决的方法就是用DataTrigger取代Trigger, 然后用Binding+Converter转换为详细非Nu ...