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

java

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




以上是 紧随时代的步伐--Java8特性之接口默认方法 的全部内容, 来源链接: utcz.com/z/393476.html

回到顶部