JAVA8之接口中的默认方法(default)初涉及_java default 重写-程序员宅基地

技术标签: java  Java8  

java8给interface接口添加了新的功能,default默认方法和static静态方法。

default默认方法:实现类可以根据需求选择性的重写他。(不需要可不重写)。

static静态方法:接口的静态方法,不可重写。可直接调用。

接口多继承:接口多继承时,如果方法名一致,必须重写
public class ttt {
    public static void main(String[] args){
        new aaa().print();
        new aaa().sing();
        SingerSongwriter.singerSongwriterStatic();
        }
    }

class aaa implements SingerSongwriter {

    @Override
    public void actSensitive() { }
    
//    @Override //接口的默认方法可根据需求选择性重写
//    public void print() {
//        System.out.println("aaa");
//    }
}

interface SingerSongwriter extends Singer, Songwriter {

    void actSensitive();
    @Override //接口多继承时,如果方法名一致,必须重写
    default void print() {
        System.out.println("SingerSongwriter");
    }
    static void singerSongwriterStatic(){
        System.out.println("singerSongwriterStatic***********");
    }
}

interface Singer {
    default void print() {
       System.out.println("Singer");
   }
   //接口的静态方法,不可重写。
    default void sing() {
        System.out.println("sing***********");
    }
}

interface Songwriter {
    default void print() {
        System.out.println("Songwriter");
    }
}

打印结果:

SingerSongwriter
sing***********
singerSongwriterStatic***********

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

智能推荐

【JavaScript】——正则表达式-程序员宅基地

文章浏览阅读177次。JavaScript中刚刚接触到一个个人觉得非常新颖的东西——正则表达式。觉得 有必要总结一下。首先一张图,把正则表达式分为一下几个部分。 定义——干什么用的? 正则表达式(regular expression)简写为Regex:是对..._正则的替换功能较差;容易引起性能问题像.*这种贪婪匹配符号很容易造成大量的

css中margin和padding的用法_margin-top: 40px; padding-bottom: 20px; back-程序员宅基地

文章浏览阅读659次。在CSS中margin是指从自身边框到另一个容器边框之间的距离,就是容器外距离。在CSS中padding是指自身边框到自身内部另一个容器边框之间的距离,就是容器内距离。 下面讲解 padding和margin常用的用法一、padding1、语法结构(1)padding-left:10px; 左内边距(2)padding-right:10px; 右内_margin-top: 40px; padding-bottom: 20px; background: #f8f8f8; border-bottom:

STM32中,对GPIO_Init(GPIOB, &GPIO_InitStructure)的理解(转)_gpio_init(gpiob,&gpio_initstructure)-程序员宅基地

文章浏览阅读7.2k次,点赞3次,收藏22次。今天学习stm32流水灯程序的时候,看到了“GPIO_Init(GPIOB, &GPIO_InitStructure)”这个函数,参数1”GPIOB“很好理解,就是GPIO的外设口B(也可以是A,C,D,E),第二个参数有点不理解,于是查看了下库函数手册,该函数原型是这样的:void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GP..._gpio_init(gpiob,&gpio_initstructure)

Vue实例的属性和方法_在vue实例中可以定义方法的是-程序员宅基地

文章浏览阅读1w次,点赞9次,收藏55次。一、Vue之实例属性Vue实例暴露了一些有用的实例属性与方法。这些属性与方法都有前缀$,以便与代理的数据属性区分组件树$parent:用来访问组件实例的父实例 $root: 用来访问当前组件树的根实例 $children:用来访问当前组件实例的直接子组件实例 $refs:用来访问v-ref指令的子组件DOM访问$el:用来挂载当前组件实例的dom元素 $els..._在vue实例中可以定义方法的是

总线仲裁器电路的设计与验证Verilog_仲裁器是电路中-一个常见的模块,来自上游的多路请求经过仲裁器之后汇聚成一路送往-程序员宅基地

文章浏览阅读2.4k次,点赞2次,收藏33次。共享总线是一种常见的总线结构,多个总线上的设备拥有共同的地址线和数据线。当-一个总线设备希望占据总线进行数据收发操作时,需要通过属于自己的areq信号向仲裁器发出申请,只有得到仲裁器的许可(对应的agnt置1 )时才能进行数据收发操作,没有得到许可的总线设备不能发起数据操作,否则将会出现多个设备同时驱动总线的错误。下图是有两个总线设备的总线仲裁器电路,areqO 和areq1以及agnt0和agnt1分别是master1和master2的请求和确认信号,rid是仲裁方式选择信号。当多个总线设备同时发出请求时_仲裁器是电路中-一个常见的模块,来自上游的多路请求经过仲裁器之后汇聚成一路送往

ES6 模块与 CommonJS 模块的差异_commonjs 模块的require()是同步加载模块,es6 模块的import命令是异步加载,-程序员宅基地

文章浏览阅读176次。ES6 模块与 CommonJS 模块的差异讨论 Node.js 加载 ES6 模块之前,必须了解 ES6 模块与 CommonJS 模块完全不同它们有三个重大差异。CommonJS 模块输出的是一个值的拷贝,ES6 模块输出的是值的引用。CommonJS 模块是运行时加载,ES6 模块是编译时输出接口。CommonJS 模块的 require() 是同步加载模块,ES6 模块的 import 命令是异步加载,有一个独立的模块依赖的解析阶段。第二个差异是因为 CommonJS 加载的是一_commonjs 模块的require()是同步加载模块,es6 模块的import命令是异步加载,有一个

随便推点

鸿蒙HarmonyOS应用开发之Node-API简介-程序员宅基地

文章浏览阅读747次,点赞11次,收藏11次。OpenHarmony Node-API是基于Node.js 8.x LTS的 Node-API 规范扩展开发的机制,为开发者提供了ArkTS/JS与C/C++模块之间的交互能力。它提供了一组稳定的、跨平台的API,可以在不同的操作系统上使用。本文中如无特别说明,后续均使用Node-API指代OpenHarmony Node-API能力。OpenHarmony Node-API与Node.js 8.x LTS的Node-API规范的接口异同点,详见Node-API参考。

图像融合中多尺度变换方法总结(下)-程序员宅基地

文章浏览阅读8.5k次,点赞7次,收藏92次。为了选取融合效果较好的多尺度变换方法来提高多波段图像融合质量,现用七种多尺度变换方法结合高频绝对值取大,低频加权平均的融合规则对可见光、红外短波和红外长波图像进行融合,通过主观人眼视觉的角度与客观评价中的信息量、统计特性和人眼视觉特性对融合效果进行分析比较,找到融合效果较好的多尺度变换方法。多尺度变换方法特点分析金字塔变换(1)拉普拉斯金字塔变换LP变换能够很好的表示图像不同分辨率上的高频..._多尺度变换

爬取B站评论和弹幕_哔哩哔哩评论读取工具-程序员宅基地

文章浏览阅读2.2k次。记录一下爬取B站数据_哔哩哔哩评论读取工具

Android activity间的数据回传_数据回传android-程序员宅基地

文章浏览阅读8.3k次,点赞8次,收藏30次。在开发的时候我们经常有需要用到数据回传比如说 我们有这样一个需求:我们点击一个充值按钮 跳转到第二个界面进行充值 然后要把结果返回给第一个界面这里 我们需要用到 startActivityForResult 这个方法 一样是使用 intent进行的首先 我们在第一个界面做跳转的时候这样写 Intent intent=new Intent(MainActivity.this,TowAc..._数据回传android

【elementUI+vue+el-table】树形数据使用表格呈现+表格自定义合并_树结构列表化用table展示-程序员宅基地

文章浏览阅读3.7k次。我需要合并样式:后端数据(树形)及我应展示的思路:获取树形数据并变成列表数据:getOrganizationTree().then((res) => { let that = this; if (res.code == 200) { console.log(res, "准备对接列表的属性接口"); let yqName = res.data.YuanName let yqData = res.data.data // 因为我第一层园区只有一_树结构列表化用table展示

Mongodb $lookup 多表关联查询_mongodb lookup out-程序员宅基地

文章浏览阅读2.3k次。http://www.cnblogs.com/huangxincheng/p/5728791.html_mongodb lookup out