package exer1; //面向对象成员内部类的使用 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(){ public void getName(){ System.out.println("联想笔记本"); } public void getPrice(){ System.out.println("¥3000"); } }; //方式三:创建一个实现product接口的匿名类的匿名对象 t.show(new Product(){ public void getName(){ System.out.println("iPhone6s"); } public void getPrice(){ System.out.println("¥5000"); } }); System.out.println(); Product p1=t.getProduct(); p1.getName(); p1.getPrice(); } //局部内部类的使用 public Product getProduct(){ //方式一:实现product接口的局部内部类 // class Camera implements Product{ // public void getName(){ // System.out.println("数码相机"); // } // public void getPrice(){ // System.out.println("5000"); // } // } // return new Camera();//返回一个对象 //方式二:实现product接口的匿名局部内部类 return new Product(){ public void getName(){ System.out.println("数机"); } public void getPrice(){ System.out.println("6000"); } }; } public void show(Product p){ p.getName(); p.getPrice(); } } interface Product{ void getName(); void getPrice(); } class NoteBook implements Product{ public void getName(){ System.out.println("HP笔记本"); } public void getPrice(){ System.out.println("¥5000"); } }
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 现代计算机视觉入门之:什么是图片特征编码
· .NET 9 new features-C#13新的锁类型和语义
· Linux系统下SQL Server数据库镜像配置全流程详解
· 现代计算机视觉入门之:什么是视频
· 【译】我们最喜欢的2024年的 Visual Studio 新功能
· 个人数据保全计划:从印象笔记迁移到joplin
· Vue3.5常用特性整理
· 重拾 SSH:从基础到安全加固
· 为什么UNIX使用init进程启动其他进程?