java 接口default_接口default方法作用

java 接口default_接口default方法作用在java8以后,接口中可以添加使用default或者static修饰的方法,在这里我们只讨论default方法,default修饰方法只能在接口中使用,在接口种被default标记的方法为普通方法,可以直接写方法体。实现类会继承接口中的default方法如果接口A中有default方法:publicinterfaceA{ publicdefaultvoida(){ System…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

在java8以后,接口中可以添加使用default或者static修饰的方法,在这里我们只讨论default方法,default修饰方法只能在接口中使用,在接口中被default标记的方法为普通方法,可以直接写方法体。

 

  1. 实现类会继承接口中的default方法

如果接口A中有default方法:

public interface A {
	public default void a(){
		System.out.println("这是A");
	}
}

Test类实现接口A:

public class Test implements A{
	
}

那么Test类将会继承接口A中的a方法:

public class Test2 {
	public static void main(String[] args) {
		Test t = new Test();
		t.a();
	}
}

2.如果一个类同时实现接口A和B,接口A和B中有相同的default方法,这时,该类必须重写接口中的default方法

 

为什么要重写呢?是因为,类在继承接口中的default方法时,不知道应该继承哪一个接口中的default方法。

接口A:

public interface A {
	public default void a(){
		System.out.println("这是A");
	}
}

接口B:

public interface B {
	public default void a(){
		System.out.println("这是B");
	}
}

Test类:

java 接口default_接口default方法作用

 

 

 

3.如果子类继承父类,父类中有b方法,该子类同时实现的接口中也有b方法(被default修饰),那么子类会继承父类的b方法而不是继承接口中的b方法

接口A:

public interface A {
	public default void b(){
		System.out.println("AAA");
	}
}

类C:

public class C {
	public void b(){
		System.out.println("CCC");
	}
}

子类:

public class Test extends C implements A{
	
}

测试类:

java 接口default_接口default方法作用

说明子类继承的b方法为父类C中的b方法,不是接口中的default b(){}方法。

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/179175.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • psd 替换智能图层的的实现-个性化定制网站

    psd 替换智能图层的的实现-个性化定制网站老板让做一个在线服装定制的网站,可合成服装的效果图遇到了难处,如果是单纯的图片叠加也比较简单,前端合成的话使用canvas两张图片合成在一起就可以了canvas合成衣服的效果图准备两张图片,一张是素材,一张是背景如下图他们加一块就得到了这样一张图满心欢喜找老板,实现了!!!,终于可以早早下班了,然并卵,老板说:素材为啥没有弯曲,做出来的图片不真实,方案被打回来之后再次研究方案1.弯曲写死,如果单纯定制杯子是没有问题的,因为他只有一种效果,如果定制的是衣服,风景画等等其他的商品效.

    2022年5月16日
    37
  • mysql设置隔离级别_修改mysql事务隔离级别

    mysql设置隔离级别_修改mysql事务隔离级别引言开始我们的内容,相信大家一定遇到过下面的一个面试场景面试官:“讲讲mysql有几个事务隔离级别?”你:“读未提交,读已提交,可重复读,串行化四个!默认是可重复读”面试官:“为什么mysql选可重复读作为默认的隔离级别?”(你面露苦色,不知如何回答!)面试官:”你们项目中选了哪个隔离级别?为什么?”你:“当然是默认的可重复读,至于原因。。呃。。。”(然后你就可以回去等通知了!)为了避免上述尴尬的…

    2025年8月27日
    12
  • Java集合篇:HashMap原理详解(JDK1.7及之前的版本)

    Java集合篇:HashMap原理详解(JDK1.7及之前的版本)

    2021年10月4日
    34
  • IE内嵌google chrome frame解决浏览器兼容问题

    IE内嵌google chrome frame解决浏览器兼容问题参考文献:http://www.pseudowired.com/2012/12/04/tomcat-http-header-manipulation/(html中自动添加使用chrome的header)http://www.baike.com/wiki/Google+Chrome+Frame(googlechromeframe介绍)http://www.cnbl

    2022年7月16日
    24
  • Neokylin-Server离线环境、跨主机、使用Docker部署PXC集群

    Neokylin-Server离线环境、跨主机、使用Docker部署PXC集群Neokylin-Server离线环境、跨主机、使用Docker部署PXC集群Neokylin-Server离线环境、跨主机、使用Docker部署PXC集群一、说明二、部署过程:1.切换root账号或所有语句加sudo;2.关闭6个节点防火墙(或打开端口);3.6个节点导入rpm包后安装基础环境:4.设置所有节点;5.启动docker并导入images;6.时间同步;7.etcd集群配置;8.部署flannel网络;9.n1-n3部署pxc;10.m1-m3部署Haproxy+Keepa

    2022年8月10日
    10
  • OpenProcessToken学习

    OpenProcessToken学习  要对一个任意进程(包括系统安全进程和服务进程)进行指定了写相关的访问权的OpenProcess操作,只要当前进程具有SeDeDebug权限就可以了。要是一个用户是Administrator或是被给予了相应的权限,就可以具有该权限。可是,就算我们用Administrator帐号对一个系统安全进程执行OpenProcess(PROCESS_ALL_ACCESS,FALSE,dwProcessID…

    2022年6月25日
    22

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号