匿名内部类
匿名内部类主要是简化了一些代码的书写,例如在有些接口只使用一次的情况下,以往的方法往往是创建一个类去implements这个接口,再到测试类里进行创建实例对象去调用这个方法,如下:
这是一个需要实现一次的接口:
package com.itazhang.demo2;
public interface Work {
public void method1();
}
先创建一个类来implements要使用的接口:
package com.itazhang.demo2;
public class Worker implements Work{
@Override
public void method1() {
System.out.println("这是method1方法");
}
}
再到测试类里创建一个对象来调用类里的方法:
package com.itazhang.demo2;
public class Test2 {
public static void main(String[] args) {
Worker w = new Worker();
w.method1();
}
}
上诉实现方法虽然可以,但是在这个接口我只需要调用一次的情况下,我还创建了一个类去implements这个接口,导致代码很冗杂。
所以就有匿名内部类,我直接在Test方法中重写这个接口里的方法并直接调用,如下:
package com.itazhang.demo2;
public class Test1 {
public static void main(String[] args) {
Work work = new Work() {
@Override
public void method1() {
System.out.println("这是一个method1方法");
}
};
work.method1();
}
}
这种书写方法就是匿名内部类的写法,能极大的减少代码冗余问题。