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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Java练习:用Java语言编写九九乘法表[通俗易懂]

    Java练习:用Java语言编写九九乘法表[通俗易懂]//java程序编写九九乘法表:下三角publicclassTest1{ publicstaticvoidmain(String[]args){ for(inti=1;i<=9;i++){ for(intj=1;j<=i;j++){ System.out.print(j+"*"+i+"="+(i*j)+""); } System.o…

    2022年7月15日
    9
  • MySQL执行顺序

    mysql执行顺序

    2022年4月6日
    43
  • blob对象介绍[通俗易懂]

    blob对象介绍[通俗易懂]一个Blob对象表示一个不可变的,原始数据的类似文件对象。Blob表示的数据不一定是一个JavaScript原生格式blob对象本质上是js中的一个对象,里面可以储存大量的二进制编码格式的数据。创建blob对象创建blob对象本质上和创建一个其他对象的方式是一样的,都是使用Blob()的构造函数来进行创建。构造函数接受两个参数:第一个参数为一个数据

    2022年10月30日
    0
  • Java设计模式(六)之结构型模式:适配器模式

    Java设计模式(六)之结构型模式:适配器模式

    2021年4月9日
    119
  • junit mock 方法(need的用法总结)

    使用EasyMock的总体步骤1、生成Mock接口IServicemockService=EasyMock.createMock(“name”,IService.class);如果要mock对象,而不是接口,应该使用classextension:org.easymock.classextension.EasyMock如果要mock多个接口,最好使用Mo

    2022年4月12日
    466
  • nessus扫描工具的使用_结合扫描器任务

    nessus扫描工具的使用_结合扫描器任务目录NessusScansSettings一个基本扫描的建立自定义扫描策略Nessus的高级扫描方法NessusNessus号称是世界上最流行的漏洞扫描程序,全世界有超过75000个组织在使用它。该工具提供完整的电脑漏洞扫描服务,并随时更新其漏洞数据库。Nessus不同于传统的漏洞扫描软件,Nessus可同时在本机或远端上遥控,进行系统的漏洞分析扫描。对应渗透测试人…

    2022年10月19日
    0

发表回复

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

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