您的位置:首页 > 编程语言 > Java开发

紧随时代的步伐--Java8特性之接口默认方法

2017-07-31 22:48 288 查看
1、关于Java8

自从1996年Sun公司发布Java以来,Java到目前为止已经走过21个年头,每一次的升级,都是Java语言的革新,对时代发展的适应。2014年Oracle发布Java8,而据可靠消息指出,在今年2017年9月,Oracle将会发布Java9。Java9即将到来,然而我们对Java8很多新特性还是没有熟悉和灵活运用。

2、接口定义

Java8后,可以使用default关键字,在接口上可添加默认方法。无论是技术上还是编程理念上都是一种进步。

public interface Dao {

default public void add() {
System.out.println("add");
}

default public void select() {
System.out.println("select");
}

default public void modify() {
System.out.println("modify");
}

default public void delete() {
System.out.println("delete");
}
}

3、实现类
1)

public class DaoImpl implements Dao{

@Override
public void add() {
System.out.println("Impl:");
Dao.super.add();
}

@Override
public void select() {
System.out.println("Impl");
Dao.super.select();
}

@Override
public void modify() {
System.out.println("Impl");
Dao.super.modify();
}

@Override
public void delete() {
System.out.println("Impl");
Dao.super.delete();
}

}2)
public class DaoImpl2 implements Dao{

@Override
public void add() {
System.out.println("Impl2:");
Dao.super.add();
}

@Override
public void select() {
System.out.println("Impl2:");
Dao.super.select();
}

@Override
public void modify() {
System.out.println("Impl2:");
Dao.super.modify();
}

@Override
public void delete() {
System.out.println("Impl2:");
Dao.super.delete();
}

}

4、测试类
来用Junit4来运行测试

public class Test {

private Dao dao;//接口

@Test
public void test() {
System.out.println("=====默认接口=====");
dao = new Dao() {};
dao.add();

System.out.println("=====默认接口重写=====");
dao = new Dao() {

@Override
public void add() {
// TODO Auto-generated method stub
System.out.println("代码重写:");
Dao.super.add();
}

};
dao.add();

System.out.println("=====实现类1====");
dao = new DaoImpl();
dao.add();

System.out.println("=====实现类2====");
dao = new DaoImpl2();
dao.add();
}
}

5、运行结果
=====默认接口=====
add
=====默认接口重写=====
代码重写:
add
=====实现类1====
Impl:
add
=====实现类2====
Impl2:
add

Reference:
[1] Herbert Schildt(著), 战晓苏、江凌(译), Java8编程参考官方教程(第9版), 清华大学出版社, 213-217
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: