zoukankan      html  css  js  c++  java
  • JavaSE-匿名类_匿名内部类的使用

    package com.btp.t2;
    
    public class TestProduct {
    
    	public static void main(String[] args) {
    		TestProduct t=new TestProduct();
    		//方式一:创建一个实现Product接口的类的对象
    		NoteBook n=new NoteBook();
    		t.show(n);
    		//方式二:有对象名
    		Product p=new Product(){
    
    			@Override
    			public void getName() {
    				// TODO 自动生成的方法存根
    				System.out.println("Galaxy Note3");
    			}
    
    			@Override
    			public void getPrice() {
    				// TODO 自动生成的方法存根
    				System.out.println("$8000");
    			}
    			
    		};
    		t.show(p);
    		
    		//方式三:创建一个实现Product接口的匿名类的对象
    		t.show(new Product(){
    
    			@Override
    			public void getName() {
    				// TODO 自动生成的方法存根
    				System.out.println("Iphone8s");
    			}
    
    			@Override
    			public void getPrice() {
    				// TODO 自动生成的方法存根
    				System.out.println("$10000");
    			}
    			
    		});
    		System.out.println();
    		
    		Product p1=t.getProduct();
    		p1.getName();
    		p1.getPrice();
    		Product p2=t.getProduct1();
    		p2.getName();
    		p2.getPrice();
    	}
    	
    	
    	
    	
    	public void show(Product p){
    		p.getName();
    		p.getPrice();
    	}
    	
    	//局部内部类的使用
    	//方式一:实现Product接口的局部内部类
    	public Product getProduct(){
    		class Camera implements Product
    		{
    
    			@Override
    			public void getName() {
    				// TODO 自动生成的方法存根
    				System.out.println("数码相机");
    			}
    
    			@Override
    			public void getPrice() {
    				// TODO 自动生成的方法存根
    				System.out.println("4000");
    			}
    		}
    		return new Camera();
    	}
    	
    	//方式二:实现Product接口的匿名局部内部类
    	public Product getProduct1(){
    		return new Product(){
    
    			@Override
    			public void getName() {
    				// TODO 自动生成的方法存根
    				System.out.println("电子书");
    			}
    
    			@Override
    			public void getPrice() {
    				// TODO 自动生成的方法存根
    				System.out.println("¥1000");
    			}
    			
    		};
    	}
    
    }
    
    interface Product{
    	void getName();
    	
    	void getPrice();
    }
    
    
    class NoteBook implements Product{
    
    	@Override
    	public void getName() {
    		// TODO 自动生成的方法存根
    		System.out.println("HP笔记本");
    	}
    
    	@Override
    	public void getPrice() {
    		// TODO 自动生成的方法存根
    		System.out.println("$5000");
    	}
    	
    }
    

      

  • 相关阅读:
    制作openresty的docker镜像 + nginx笔记 调试rewrite和location Nginx 学习笔记
    C# winform在WebBrowser下获取完整的Cookies(包括含HTTPOnly属性的)
    vscode代码切换大小写的教程
    C#中的Guid
    .NET Framework 版本和依赖关系
    将 Excel 数据导入 SQL Server数据库
    sqlserver各版本的介绍对比
    使用 Visual Studio Code 创建并运行 Transact SQL 脚本
    SQL转Linq工具的使用——Linqer 4.6
    对象之间的映射(AutoMapper集成)
  • 原文地址:https://www.cnblogs.com/a842297171/p/5155099.html
Copyright © 2011-2022 走看看