1 public class TestProduct {
2 public static void main(String[] args) {
3 TestProduct t = new TestProduct();
4 //方式一:创建一个实现Product接口的类的对象,并将此对象传入方法中
5 NoteBook n = new NoteBook();
6 t.show(n);
7 //方式二:创建一个实现Product接口的匿名类的对象
8 Product p = new Product(){
9 public void getName(){
10 System.out.println("Galaxy Note3");
11 }
12 public void getPrice(){
13 System.out.println("¥5288");
14 }
15 };
16 //方式三:创建一个实现Product接口的匿名类的匿名对象
17 t.show(new Product(){
18 public void getName(){
19 System.out.println("Iphone5s");
20 }
21 public void getPrice(){
22 System.out.println("¥5288");
23 }
24 });
25 System.out.println();
26 Product p1 = t.getProduct();
27 p1.getName();
28 p1.getPrice();
29
30 }
31
32 //局部内部类的使用
33 public Product getProduct(){
34 // //方式一:实现Product接口的局部内部类
35 // class Camera implements Product{
36 //
37 // @Override
38 // public void getName() {
39 // System.out.println("数码相机");
40 // }
41 //
42 // @Override
43 // public void getPrice() {
44 // System.out.println("4000");
45 // }
46 //
47 // }
48 // return new Camera();
49 //方式二:实现Product接口的匿名局部内部类
50 return new Product(){
51 @Override
52 public void getName() {
53 System.out.println("电纸书");
54 }
55
56 @Override
57 public void getPrice() {
58 System.out.println("1000");
59 }
60 };
61
62 }
63
64 public void show(Product p){
65 p.getName();
66 p.getPrice();
67 }
68 }
69
70 interface Product{
71 void getName();
72
73 void getPrice();
74 }
75
76 class NoteBook implements Product{
77 public void getName(){
78 System.out.println("HP笔记本");
79 }
80 public void getPrice(){
81 System.out.println("¥5000");
82 }
83 }