java-匿名内部类
来源:互联网 发布:mysql的配置 编辑:程序博客网 时间:2024/05/21 00:54
匿名内部类:
没有类名的类。
匿名内部类一般是用于实参传递。
匿名内部类的好处:
- 用于实参传递简化书写。
匿名内部类的使用前提:
必须存在继承或者实现的关系才能使用。
当匿名内部类中存在特有方法的时候,就不能使用匿名内部类了,只能使用局部内部类。
继承关系下的匿名内部类:
- 注意:当存在特有方法时,就不能使用匿名内部类了,只能使用局部内部类。
/*继承关系下的匿名内部类:*/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(){ //注意:变量a ,类型Animal。多态的体现。 //匿名内部的成员 public Animal run(){ System.out.println("狗在跑.."); return this;//返回当前对象 } public void sleep(){ System.out.println("狗趴在睁开眼睛睡.."); }// //注意:当存在特有方法的时候!就不能使用匿名内部类了因//为没有类名无法进行类型转换。 //特有的方法// public void bite(){// System.out.println("狗在咬人..");// } }; a.run(); a.sleep(); }}class Demo6 { public static void main(String[] args) { //System.out.println("Hello World!"); Outer outer = new Outer(); outer.print(); }}
实现关系下的匿名内部类:
//实现关系下匿名内部类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匿名内部类
- 简单工厂模式
- Struts2-3 HelloWorld详解
- switch的用法及实例分析
- 物料分类账分析
- 360自带--JS开发工具箱
- java-匿名内部类
- to do list
- 足以应付一切的水仙花数,字母交叉问题,数组排序去重复,今天get到一点点,首先一道题莫名其妙地改对了然后明白了自己思路是对的但是不会写代码 还是什么用都没有
- jQuery on: losing attached event after rendering partially by AJAX call
- 第27天 批处理、对象的克隆、内存溢出、设计模式、反射
- python 学习笔记-变量作用域
- mysql命令
- Java并发之基本的线程机制
- 关于android内存优化的几点建议