java匿名内部类
来源:互联网 发布:马尔可夫链转移矩阵 编辑:程序博客网 时间:2024/06/08 11:47
java匿名内部类
匿名内部类:没有类名的类就称作为匿名内部类。
匿名内部类的好处:简化书写。
匿名内部类的使用前提:必须存在继承或者实现关系才能使用。
匿名内部类一般是用于实参。
实例1:
abstract class Animal{ public abstract Animal run(); public abstract void sleep();}**重点内容**class Outer{ public void print(){ //需求: 在方法内部定义一个类继承Animal类,然后调用run方法与sleep()。 /* //局部内部类 class Dog extends Animal{ public void run(){ System.out.println("狗在跑.."); } public void sleep(){ System.out.println("狗趴在睁开眼睛睡.."); } } //创建对象 Dog d = new Dog(); d.run(); d.sleep(); */ //匿名内部类 :匿名内部类只是没有类名,其他的一概成员都是具备的。 // 匿名内部类与Animal是继承 的关系。 目前是创建Animal子类的对象. Animal a = new Animal(){ //多态 //匿名内部的成员 public Animal run(){ System.out.println("狗在跑.."); return this; } public void sleep(){ System.out.println("狗趴在睁开眼睛睡.."); } //特有的方法 public void bite(){ System.out.println("狗在咬人.."); } }; a.bite(); a.run(); a.sleep(); }}class Demo6 { public static void main(String[] args) { //System.out.println("Hello World!"); Outer outer = new Outer(); outer.print(); }}
实例2:
//实现关系下匿名内部类interface Dao{ public void add();}class Outer{ public void print(){ //创建一个匿名内部类的对象 new Dao(){ //不是接口不能创建对象吗?怎么现在又可以了? public void add(){ System.out.println("添加成功"); } }.add(); }}class Demo7 { public static void main(String[] args) { test(new Dao(){ public void add(){ System.out.println("添加员工成功"); } }); } //调用这个方法... public static void test(Dao d){ //形参类型是一个接口引用.. d.add(); }}
阅读全文
0 0
- JAVA匿名内部类
- java 匿名内部类
- JAVA匿名内部类
- java 匿名内部类
- JAVA匿名内部类
- java 匿名内部类
- JAVA匿名内部类
- java 匿名内部类
- JAVA匿名内部类
- Java匿名内部类
- JAVA匿名内部类
- java匿名内部类
- java匿名内部类
- java匿名内部类
- JAVA 匿名内部类
- JAVA匿名内部类
- java匿名内部类
- java匿名内部类
- 深入探讨大数据权限管理方案-从哲学到技术
- 笔记2-容器适配器/泛型算法/lambada表达式
- Android内存泄漏检测利器:LeakCanary
- HTML、CSS学习-node.js三句代码挂载静态网站
- 私募股权和VC有什么区别
- java匿名内部类
- 自定义view视图,小球随手指动
- FPGA实验五——多周期移位寄存器
- libpng error: Invalid IHDR data
- 过程流程图还能这么画,都来学学吧
- Unbuntu 16.04 NFS配置步骤札记
- 这样实施可视化数据分析工具可能会导致错误(上)
- iOS多语言-Localizable.strings2Excel 使用笔记
- jquery.js和jquery.min.js的区别介绍