美文网首页
匿名内部类--java18(18/12/2015)

匿名内部类--java18(18/12/2015)

作者: Girl_endless | 来源:发表于2015-12-18 19:52 被阅读34次
    package com.atguigu.exer;
    
    public class TestProduct {
    
        public static void main(String[] args) {
            TestProduct t = new TestProduct();
            //方式一:创建一个实现product接口的类的对象,并将此对象传入方法中
            //尽量使用第一种,易懂
            NoteBook n = new NoteBook();
            t.show(n);
            
            //方式二:创建一个实现Product接口的匿名类的对象
            Product p = new Product() {
                
                @Override
                public void getPrice() {
                    System.out.println("Glaxy Note3");
                    
                }
                
                @Override
                public void getName() {
                    System.out.println("5288");
                    
                }
            };
            
            //方式三:创建一个实现Product接口的匿名类的匿名对象
            t.show(new Product() {
                
                @Override
                public void getPrice() {
                    System.out.println("Iphone6s");
                    
                }
                
                @Override
                public void getName() {
                    System.out.println("5428");
                    
                }
            });
            
            System.out.println();
            Product p1 = t.getProduct();
            p1.getName();
            p1.getName();
        }
        
        //局部内部类的使用
        public Product getProduct(){
    //      //方式一:实现product接口的局部内部类
    //      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 getPrice() {
                    System.out.println("电视机");
                    
                }
                
                @Override
                public void getName() {
                    System.out.println("3000");
                    
                }
            };
        
        public void show(Product p){
            p.getName();
            p.getPrice();
            
        }
    }
    
    interface Product{
        public abstract void getName();
        void getPrice();//接口中略去
    }
    
    
    class NoteBook implements Product{
    
        @Override
        public void getName() {
            System.out.println("HP笔记本");
            
        }
    
        @Override
        public void getPrice() {
            System.out.println("5000");
            
        }
        
    }
    

    相关文章

      网友评论

          本文标题:匿名内部类--java18(18/12/2015)

          本文链接:https://www.haomeiwen.com/subject/kqiphttx.html