比如 一个接口 A ,里面有一个方法fun1(),一般我们是先定义它的实现再引用它,比如
public class ImpA implements A{
public void fun1(){
//do some thing...
}
}
然后在另一个类调用
public class Class1 {
public void method1(){
A a = new ImpA();
}
}
但有时我想对这个接口做另一个实现不想使用ImpA,但由于是临时的又不想去做定义,则你就可以这样
public class Class1 {
public void method1(){
A a = new A(){ //相当于在内存中直接产生了一个接口的实现并引用这个内存对象。动态的代码
public void fun1(){
//do some thing...
}
};
}
}
public class ImpA implements A{
public void fun1(){
//do some thing...
}
}
然后在另一个类调用
public class Class1 {
public void method1(){
A a = new ImpA();
}
}
但有时我想对这个接口做另一个实现不想使用ImpA,但由于是临时的又不想去做定义,则你就可以这样
public class Class1 {
public void method1(){
A a = new A(){ //相当于在内存中直接产生了一个接口的实现并引用这个内存对象。动态的代码
public void fun1(){
//do some thing...
}
};
}
}