内部类实现接口疑问!帮忙分析一小段代码
此段代码来自于Java编程思想!
下面有2种方法实现多重继承。
我对下面的第2种方法(产生内部类)不理解,为什么“return new B(){};”就可以了。
都不知道这个接口怎么被实现了,之前我只知道好像这是普通匿名类的写法。
我很菜,望大虾详细解说!谢谢!
interface A{}interface B{}class X implements A,B{} //状况1class Y implements A{ //状况2 B makeB(){ return new B(){}; //{} 造成 内部类 ;这个地方理解不了 }}public class test{ static void tackA(A a){} static void tackB(B b){} public static void main(String[] args) { X x=new X(); Y y=new Y(); tackA(x); tackA(y); tackB(x); tackB(y.makeB()); }}interface A{}interface B{}class X implements A,B{} //状况1class Y implements A{ //状况2 B makeB(){ return new B(){}; //{} 造成 内部类 ;这个地方理解不了 }}public class test{ static void tackA(A a){} static void tackB(B b){} public static void main(String[] args) { X x=new X(); Y y=new Y(); tackA(x);//使用tackA(A a),X是A的实现, tackA(y);//使用tackA(A a),Y是A的实现, tackB(x);//使用tackB(B b),x是B的实现, tackB(y.makeB());//使用tackB(B,b),虽然Y没有实现B,但是其中makeB方法返回了B(new B()) }}
[解决办法]