本文实例讲述了Java带default方法接口的应用。分享给大家供大家参考,具体如下:
一 带default方法接口的实现
1 代码
interface InterfaceA // 定义一个接口
{
public static String INFO = "static final." ; // 全局常量
public void print() ; // 抽象方法
default public void otherprint() // 带方法体的默认方法
{
System.out.println("print default1 methods InterfaceA!");
}
}
class subClass implements InterfaceA //子类InterfaceAB实现接口InterfaceA
{
public void print( ) //实现接口中的抽象方法print( )
{
System.out.println("print abstract methods InterfaceA!");
System.out.println(INFO);
}
}
public class Interfacedefault
{
public static void main(String[ ] args)
{
subClass subObj = new subClass( ); //实例化子类对象
subObj.print( ); //调用覆写过的抽象方法
subObj.otherprint( ); //调用接口中的默认方法
System.out.println(InterfaceA.INFO); //输出接口中的常量
InterfaceA InterfaceAobj = new subClass(); // 实例化子类对象,赋值给一个接口引用
InterfaceAobj.print( ); //调用覆写过的抽象方法
InterfaceAobj.otherprint( ); //调用接口中的默认方法
}
}
2 运行
print abstract methods InterfaceA!
static final.
print default1 methods InterfaceA!
static final.
print abstract methods InterfaceA!
static final.
print default1 methods InterfaceA!
二 仅有default方法接口的使用
1 点睛
Java 8中,允许在一个接口中只定义默认方法,而没有一个抽象方法。
2 代码
interface InterfaceA // 定义一个接口
{
default public void otherprint( ) // 带方法体的默认方法
{
System.out.println("print default1 methods only in InterfaceA!");
}
}
class subClass implements InterfaceA //子类InterfaceAB实现接口InterfaceA
{
//do nothing
}
public class InterfaceDefaultOnly
{
public static void main(String[ ] args)
{
subClass subObj = new subClass( ); //实例化子类对象
subObj.otherprint(); //调用接口中的默认方法
}
}
3 运行
print default1 methods only in InterfaceA!
4 说明
由于接口InterfaceA中并无抽象方法,因此无抽象方法需要在子类中“实现”,所以子类subClass的主体部分什么也没有做,但这部分工作是必需的,因为接口是不能实例化对象的,即使子类subClass什么也没有做,其实也实现了一个功能,即由subClass可以实例化对象。
更多java相关内容感兴趣的读者可查看本站专题:《Java面向对象程序设计入门与进阶教程》、《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧汇总》和《Java缓存操作技巧汇总》
希望本文所述对大家java程序设计有所帮助。
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。