匿名内部类
2015-08-29 20:44
260 查看
1. 内部类:在一个类的内部还有另一个类。
匿名内部类:就是一个类在整个操作中只使用一次的话,就可以将其定义为匿名内部类。匿名内部类是在抽象类及接口的基础上发展起来的。
匿名对象举例:
public class NeiBuLei {
public static void main(String[] args) {
new X().fun1();
}
}
interface Q{
public void printInfo();//抽象方法
}
class N implements Q {
public void printInfo(){
System.out.println("hello,java!!");
}
}
class X {
public void fun1(){
this.fun2(new N());//向上转型
}
public void fun2(Q q){
q.printInfo();
}
}
运行结果:
hello,java!!
如果此时B类只使用一次的话,那么就没必要为其单独定义一个类。此时就可以使用匿名内部类解决问题了!
修改后:
public class NeiBuLei1 {
public static void main(String[] args) {
new X1().fun1();
}
}
interface A1{
public void printInfo();
}
class X1{
public void fun1(){
this.fun2(new A1(){//匿名内部类
public void printInfo(){
System.out.println("hello,world");
}
});
}
public void fun2(A1 a){
a.printInfo();
}
}
运行结果:hello,world
匿名内部类:就是一个类在整个操作中只使用一次的话,就可以将其定义为匿名内部类。匿名内部类是在抽象类及接口的基础上发展起来的。
匿名对象举例:
public class NeiBuLei {
public static void main(String[] args) {
new X().fun1();
}
}
interface Q{
public void printInfo();//抽象方法
}
class N implements Q {
public void printInfo(){
System.out.println("hello,java!!");
}
}
class X {
public void fun1(){
this.fun2(new N());//向上转型
}
public void fun2(Q q){
q.printInfo();
}
}
运行结果:
hello,java!!
如果此时B类只使用一次的话,那么就没必要为其单独定义一个类。此时就可以使用匿名内部类解决问题了!
修改后:
public class NeiBuLei1 {
public static void main(String[] args) {
new X1().fun1();
}
}
interface A1{
public void printInfo();
}
class X1{
public void fun1(){
this.fun2(new A1(){//匿名内部类
public void printInfo(){
System.out.println("hello,world");
}
});
}
public void fun2(A1 a){
a.printInfo();
}
}
运行结果:hello,world
相关文章推荐
- poj 1700 Crossing River(贪心·dp)
- POJ 2528 Mayor's posters(线段树+离散化)
- 半路程序员
- 分区表fstab
- 初识JAVA2(数组、类、对象、构造器)
- 包装类
- 【JAVA】.jar与sources.jar浅谈~~么么哒
- J2EE面试题集
- Spring 容器(一)
- 【软考】递归调用
- 【实例】html-canvas中实现图片的放大
- android系统service组件的线程关系
- JavaScript打开新页面的方法
- poj 1077 hdu 1043 Eight 八数码问题 DBFS(双向广度优先搜索)a*算法 康拓展开
- Permission is only granted to system apps
- 实时监听输入框值变化:oninput & onpropertychange
- 工具---定时器
- HDOJ1677(最长上升子序列个数)
- Java中Object类
- LeetCode--Remove Duplicates from Sorted List