代码先锋网 代码片段及技术文章聚合

interface笔记4.默认方法定义和使用

技术标签: java  java

格式:

public default 返回值类型 方法名称(参数列表){
    // 方法体
}

方法升级:

        假设有个接口A,分别由实现类B,C去实现,当A接口升级时,实现类B,C以定义来说要全部覆写A接口的方法,如果不覆写则会报错,很不方便,此时A需要定义默认方法来升级。

interface A{
    void method();
    public default void newMethod(){
        System.out.println("新增的默认方法");
    }
}

class AImplA implements A{
    @Override
    public void method() {
        System.out.println("A实现method");
    }
}

class AImplB implements A{
    @Override
    public void method() {
        System.out.println("B实现method");
    }
    public void newMethod(){
        System.out.println("重写了newMethod()方法");
    }
}

public class Demo2 {
    public static void main(String[] args) {
        AImplA a = new AImplA();
        a.method();
        a.newMethod();

        AImplB b = new AImplB();
        b.method();
        b.newMethod();
    }
}

/*
输出结果:

A实现method
新增的默认方法
B实现method
重写了newMethod()方法
 */

        接口默认方法可以通过接口实现类对象,直接调用。

        接口的默认方法也可以背接口实现类进行覆盖重写。

版权声明:本文为weixin_44602124原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_44602124/article/details/111647467

智能推荐

循环嵌套及方法定义使用

JavaSE 一、for循环嵌套 1)基础语法: for(条件初始化;条件判断;条件变化){ 重复执行的代码; for(条件初始化;条件判断;条件变化){ 重复执行的代码; } 重复执行的代码; } 特点: 外层循环执行一次,内层小循环执行一轮(从开始到结束 2)break与continue 一般控制:多重循环下->break|continue ->默认针对存在break的那一层循环 ...

java 方法定义和调用

什么是方法 封装在一起来执行操作语句的集合,用来完成某个功能操作 在某些语言中称为函数或者过程 特殊的方法main,程序执行的入口 public static void main(String  [ ] args){ 实现功能的语句 } 不可能所有的功能都放到main中,需要定义其他方法完成指定功能,需要时调用方法即可 定义方法 [修饰符]   方法返回值类型   方...

自定义注解使用规范和方法定义规范检测

主要用于自己定义的代码编写规范的扫描检测,应用启动时,进行检查。 1、检测指定注解类中的方法上,是否带必写的注解; 2、检测指定注解类中的方法,出参和入参是否为指定类型。...

Java接口允许的方法定义和函数式接口的方法定义规范

在开发当中,我们经常使用到接口来完成功能的扩展操作。 所以,我们在进入函数式接口的方法规范之前先复习一些接口允许的方法定义 接口允许的方法定义 1.一开始在学习接口的时候,认为接口当中只可以定义常量和public修饰的实例方法 2.但是实际上接口在慢慢的学习当中我掌握了接口的几种常见的方法和属性可以定义: (1)一种是默认形式的方法定义  注意:一定不要使用一个叫做default的修饰符...

Mongoose - 方法定义

定义Schema 在methods上定义方法(Schema.methods.fn) 使用方式,只能在 new Model() 得到的实例中才能访问 在statics上定义方法 使用方式,直接调用...

猜你喜欢

方法定义

 ...

方法定义

 ...

3.1.3、方法定义

方法定义 下面是一个典型的方法声明: 一个方法声明需要的元素仅仅包含:一个返回值类型,方法名,一堆括号()和位于花括号{}内的方法体。 一般来说,方法声明有6个组件: 修饰符如public、private以及稍后介绍的其他修饰符 返回类型 - 方法返回值的数据类型,或者设置void当方法没有返回值时 方法名 - 与字段命名的规则差不多,只是约定有些不同 括号中的参数列表 - 逗号分隔的输入参数,前...

剑指offer | 数组中出现次数超过一半的数字

题目: 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。 思路: ①作一个判断条件。 ②作俩个for循环,用每一个值依次和后面的值作比较。 ③当这俩个值相等时,计数加一。 ④当计数值大于数组长度的一半时,输出这个值就好了。 这里要注意in...

大多数元素 A

描述 接收一个列表,找出其中数量最多的元素,如果元素数量相同,选择列表中靠前的元素输出。 测试用例: 用例1: 输入: [3,2,3] 输出: 3 用例2: 输入: [2] 输出: 2 解析:...