版权声明:此文为本人所写,严禁版权侵占行为。如需转载请注明出处。 https://blog.csdn.net/Abby_lxf/article/details/88980424
package anonymity;
public class TestProduct {
public static void main(String[] args) {
TestProduct t = new TestProduct();
//方式一:创建一个实现Product接口的类的对象,并将此对象传入方法中。(推荐)
t.show(new NoteBook());
//方式二:匿名类的使用:创建了一个实现Product接口的匿名类的匿名对象
t.show(new Product() {
@Override
public void getName() {
System.out.println("Honor NoteBook");
}
@Override
public void getPrice() {
System.out.println("8000");
}
});
//方式三:匿名类的使用:创建了一个实现Product接口的匿名类的对象
Product p = new Product() {
@Override
public void getName() {
System.out.println("Galaxy NoteBook");
}
@Override
public void getPrice() {
System.out.println("3444");
}
};
System.out.println();
Product p1 = t.getProduct();
p.getName();
p.getPrice();
}
//局部内部类的使用
public Product getProduct() {
/* //方式一:使用匿名类的对象
class Camera implements Product{
@Override
public void getName() {
System.out.println("数码相机");
}
@Override
public void getPrice() {
System.out.println("4000");
}
}
return new Camera();*/
//方式二:实现Product接口的匿名内部类
return new Product() {
@Override
public void getName() {
System.out.println("电子书");
}
@Override
public void getPrice() {
System.out.println("9888");
}
};
}
public void show(Product p) { //Product p = new NoteBook();
p.getName();
p.getPrice();
}
}
interface Product{
void getName();
void getPrice();
}
class NoteBook implements Product{
@Override
public void getName() {
System.out.println("HP NoteBook");
}
@Override
public void getPrice() {
System.out.println("9000");
}
}