//方式一:创建一个实现Product接口的类的对象,并将此对象传入方法中
//方式二:创建一个实现Product接口的匿名类的匿名的对象
//方式三:创建一个实现Product接口的匿名类对象
public class TestProduct {
public static void main(String[] args) {
//方式一:创建一个实现Product接口的类的对象,并将此对象传入方法中
TestProduct t = new TestProduct();
NoteBook n = new NoteBook();
t.show(n);
Product p1 = t.getCamera();
p1.getName();
p1.getPrice();
Product p2 = t.getPhone();
p2.getPrice();
p2.getName();
//方式二:创建一个实现Product接口的匿名类的匿名的对象
t.show(new Product() {
@Override
public void getName() {
// TODO Auto-generated method stub
System.out.println("玩家国度");
}
@Override
public void getPrice() {
// TODO Auto-generated method stub
System.out.println("是兄弟就来砍我,渣渣辉");
}
});
//方式三:创建一个实现Product接口的匿名类对象
Product p = new Product() {
@Override
public void getName() {
// TODO Auto-generated method stub
System.out.println("贪玩蓝月");
}
@Override
public void getPrice() {
// TODO Auto-generated method stub
System.out.println("古天乐");
}
};
}
public void show(Product p) {
p.getName();
p.getPrice();
}
//局部内部类的使用
//实现Product接口的局部内部类对象
public Product getCamera(){
class Camera implements Product{
@Override
public void getName() {
// TODO Auto-generated method stub
System.out.println("卢本伟相机");
}
@Override
public void getPrice() {
// TODO Auto-generated method stub
System.out.println("卢本伟相机不要钱");
}
}
return new Camera();
}
//方式二:实现Product接口局部内部类的对象
public Product getPhone() {
return new Product() {
@Override
public void getName() {
// TODO Auto-generated method stub
}
@Override
public void getPrice() {
// TODO Auto-generated method stub
}
};
}
}