首页 > 编程 > Java > 正文

Java8 default方法

2019-11-08 01:31:47
字体:
来源:转载
供稿:网友

java8之前,接口中只允许定义方法,而不能实现方法,接口中的方法必须在非抽象子类中进行实现。

public interface InterfaceDemo {    void add();    void sub();}
public class InterfaceDemoImpl implements InterfaceDemo {    @Override    public void add() {        // do sth.    }    @Override    public void sub() {        // do sth.    }}

 

Java8的接口方法形式:

public interface InterfaceDemo {    int add();    int sub();        // Java8    default void result() {        System.out.PRintln(add() + sub());    }}
public class InterfaceDemoImpl implements InterfaceDemo {    @Override    public int add() {        // do sth.        return 1;    }    @Override    public int sub() {        // do sth.        return 2;    }}

 

结果输出:

3

 

在Java8中,接口可以有默认方法的实现,改变了之前的语法,对接口进行了扩展,没有改变接口实现类。

 

思考:在Java8之前,上面的使用场景需使用抽象类和抽象类的实现类才能完成,现在可以使用Java8接口来完成,是不是以后版本的接口会逐渐替代抽象类?
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表