Java带default方法接口的应用示例
本文实例讲述了Java带default方法接口的应用。分享给大家供大家参考,具体如下:
一带default方法接口的实现
1代码
interfaceInterfaceA//定义一个接口 { publicstaticStringINFO="staticfinal.";//全局常量 publicvoidprint();//抽象方法 defaultpublicvoidotherprint()//带方法体的默认方法 { System.out.println("printdefault1methodsInterfaceA!"); } } classsubClassimplementsInterfaceA//子类InterfaceAB实现接口InterfaceA { publicvoidprint()//实现接口中的抽象方法print() { System.out.println("printabstractmethodsInterfaceA!"); System.out.println(INFO); } } publicclassInterfacedefault { publicstaticvoidmain(String[]args) { subClasssubObj=newsubClass();//实例化子类对象 subObj.print();//调用覆写过的抽象方法 subObj.otherprint();//调用接口中的默认方法 System.out.println(InterfaceA.INFO);//输出接口中的常量 InterfaceAInterfaceAobj=newsubClass();//实例化子类对象,赋值给一个接口引用 InterfaceAobj.print();//调用覆写过的抽象方法 InterfaceAobj.otherprint();//调用接口中的默认方法 } }
2运行
printabstractmethodsInterfaceA!
staticfinal.
printdefault1methodsInterfaceA!
staticfinal.
printabstractmethodsInterfaceA!
staticfinal.
printdefault1methodsInterfaceA!
二仅有default方法接口的使用
1点睛
Java8中,允许在一个接口中只定义默认方法,而没有一个抽象方法。
2代码
interfaceInterfaceA//定义一个接口 { defaultpublicvoidotherprint()//带方法体的默认方法 { System.out.println("printdefault1methodsonlyinInterfaceA!"); } } classsubClassimplementsInterfaceA//子类InterfaceAB实现接口InterfaceA { //donothing } publicclassInterfaceDefaultOnly { publicstaticvoidmain(String[]args) { subClasssubObj=newsubClass();//实例化子类对象 subObj.otherprint();//调用接口中的默认方法 } }
3运行
printdefault1methodsonlyinInterfaceA!
4说明
由于接口InterfaceA中并无抽象方法,因此无抽象方法需要在子类中“实现”,所以子类subClass的主体部分什么也没有做,但这部分工作是必需的,因为接口是不能实例化对象的,即使子类subClass什么也没有做,其实也实现了一个功能,即由subClass可以实例化对象。
更多java相关内容感兴趣的读者可查看本站专题:《Java面向对象程序设计入门与进阶教程》、《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧汇总》和《Java缓存操作技巧汇总》
希望本文所述对大家java程序设计有所帮助。