匿名内部类
//匿名内部类
interface Product
{
public double getPrice();
public String getName();
}
public class AnnoymousTest
{
public void test(Product p)
{
System.out.println("买了一个+"+p.getName()+",花了+"+p.getPrice());
}
public static void main(String[] args)
{
AnnoymousTest p=new AnnoymousTest();
p.test(new Product()
{
public double getPrice()
{
return 12.5;
}
public String getName()
{
return "剪刀";
}
});
p.test(new B());
}
}
class B implements Product
{
public double getPrice()
{
return 1000;
}
public String getName()
{
return "bicycle";
}
}
interface Product
{
public double getPrice();
public String getName();
}
public class AnnoymousTest
{
public void test(Product p)
{
System.out.println("买了一个+"+p.getName()+",花了+"+p.getPrice());
}
public static void main(String[] args)
{
AnnoymousTest p=new AnnoymousTest();
p.test(new Product()
{
public double getPrice()
{
return 12.5;
}
public String getName()
{
return "剪刀";
}
});
p.test(new B());
}
}
class B implements Product
{
public double getPrice()
{
return 1000;
}
public String getName()
{
return "bicycle";
}
}
匿名内部类必须继承一个接口或者父类,匿名内部类不能是抽象类,所以,在类内必须实现所有父类(接口)的抽象
方法,上面的代码红色的是匿名内部类,它等效于黑色的代码,显然使用匿名内部类更加简洁