java既然接口没有构造方法,为什么声明一个实现于接口的匿名内部类又用到了类似构造方法的东西?
java既然接口没有构造方法,为什么声明一个实现于接口的匿名内部类又用到了类似构造方法的东西?比如有个接口Interface然后classA{publicInterfac...
java既然接口没有构造方法,为什么声明一个实现于接口的匿名内部类又用到了类似构造方法的东西?比如有个接口Interface
然后class A{
public Interface func(){
return new Interface(){
//类体
}
}
}
特别是return new这一块,详解一下 展开
然后class A{
public Interface func(){
return new Interface(){
//类体
}
}
}
特别是return new这一块,详解一下 展开
1个回答
展开全部
这是匿名内部类的隐式继承/实现,相当于
AnonymousClass implements Interface {
//实现所有非default的接口方法
}
public Interface func() {
return new AnonymousClass();
}
进一步,如果接口Interface只有一个非default接口方法,这样的接口叫做函数式接口,在Java 1.8中可直接简化为一个lambda表达式:
public Interface func() {
return (该方法参数列表)->{
//该方法的实现
};
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询