public class NoNameDemo {
public static void main(String[] args){
//匿名内部类
RichMan m =new RichMan();//这一步出错,不知道为什么
m.findLover(new WRB(){
public void white(){
System.out.println("white........");
}
}
);
}
//白富美
interface WRB{
public void white();
}
//富翁
class RichMan{
public void findLover(WRB web){
web.white();
}
}
}
定义匿名内部类的时候,为什么建立对象new的时候出错?
因为RichMan是普通类,一个普通的内部类对象需要和一个外部类对象绑定,即由一个外部类对象制造一个外部类对象。你可以改为RichMan m = new NoNameDemo().new RichMan();,或者将RichMan定义static类。
interface WRB 改成 class WRB呢,接口不能new吧
main方法是static修饰的,它是一个静态方法,但是RichMan
类是依赖于NoNameDemo
类实例的,你可以理解为静态方法不能访问实例对象。
改成static class RichMan
就行了
匿名类创建的是抽象类或者接口