Java复习笔记---小随笔---匿名内部类
2016-04-04 13:12
429 查看
这几天学android开发是看到了匿名内部类的使用,感觉有点陌生了回来复习下。
有时候我们需要继承一个类或实现一个接口但只使用一次却要将这个类重写一遍感觉有点浪费,那么这个时候匿名内部类就能派上大用场了;
输出结果自然是:
“这是一个匿名内部类---继承Cat抽象类”
“这是一个匿名内部类---继承Dog类”
其实匿名内部类可以在很多地方使用比如你要新建一条线程时就可以使用匿名内部类而不需要重新写一个类再继承Thread。
有时候我们需要继承一个类或实现一个接口但只使用一次却要将这个类重写一遍感觉有点浪费,那么这个时候匿名内部类就能派上大用场了;
正常怎么去继承并使用一个类
package cn.demail; public class Test{ public static void main(String[] args) { HomePig homePig=new HomePig(); homePig.eat(); } } abstract class Pig{ public abstract void eat(); } class HomePig{ public void eat(){ System.out.println("吃吃吃。。。"); } }输出结果自然是“吃吃吃。。。”
使用匿名内部类去继承并使用一个类
package cn.demail; public class AnonymousInnerClasses{ public static void main(String[] args) { Cat cat=new Cat(){ public void out(){ System.out.println("这是一个匿名内部类---继承Cat抽象类"); } }; cat.out(); Dog dog=new Dog(){ public void out(){ System.out.println("这是一个匿名内部类---继承Dog类"); } }; dog.out(); } } abstract class Cat { public abstract void out(); } class Dog { public void out(){ } }不管是抽象类还是普通类都可以使用匿名内部类的方式去继承使用;
输出结果自然是:
“这是一个匿名内部类---继承Cat抽象类”
“这是一个匿名内部类---继承Dog类”
使用匿名内部类去实现并使用一个接口
package cn.demail; public class AnonymousInnerClasses{ public static void main(String[] args) { Bird bird=new Bird(){ public void out(){ System.out.println("这是一个匿名内部类---实现Pig接口"); } }; bird.out(); } } interface Bird{ public void out(); }
其实匿名内部类可以在很多地方使用比如你要新建一条线程时就可以使用匿名内部类而不需要重新写一个类再继承Thread。
相关文章推荐
- java多线程学习(二)
- java集合:ArrayList,Vector, LinkedList的存储性能和特性
- SpringMVC集成Hessian
- java集合:ArrayList和Vector的区别
- 前几天用AnnotationSessionFactoryBean 注解方式代替*.hbm.xml时扫描映射实休文件后报错
- Java邮件发送
- Java的native方法
- Java 集合转换(数组、List、Set、Map相互转换)
- java集合:Collection 和 Collections的区别
- java集合:HashMap和Hashtable的区别
- java线程池的使用
- java中的静态分派与动态分派
- Spring实战-注入Bean属性(二)
- Java并发工具包学习
- java泛型上下限
- Java基础:序列化和反序列化
- 一天一排序之“插入排序(insertSort)”
- Java 数组及其内存管理
- 白话Spring(中级篇)---拦截器(下)
- JMS之ActiveMQ(含与Spring集成使用)