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 }