JAVA学习--匿名类的使用

复制代码
 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 } 
复制代码

 

posted @   浮云骑士  阅读(259)  评论(0编辑  收藏  举报
努力加载评论中...
点击右上角即可分享
微信分享提示