匿名内部类的详细解读
匿名内部类,就是没有名字的一种嵌套类。它是Java对类的定义方式之一。
为什么要使用匿名内部类?
在实际开发中,我们常常遇到这样的情况:一个接口/类的方法的某个实现方式在程序中只会执行一次,但为了使用它,我们需要创建它的实现类/子类去实现/重写。此时可以使用匿名内部类的方式,可以无需创建新的类,减少代码冗余。
假设当前有一个接口,接口中只有一个方法
package itheima11;
public interface Interface01 {
void show();
}
为了使用该接口的show方法,我们需要去创建一个实现类,同时书写show方法的具体实现方式
public class In implements Interface01 {
@Override
public void show() {
System.out.println(“I’m a impl class…”);
}
}
如果实现类Interface01Impl全程只使用一次,那么为了这一次的使用去创建一个类,未免太过麻烦。我们需要一个方式来帮助我们摆脱这个困境。匿名内部类则可以很好的解决这个问题。
我们使用匿名内部类
public class In {
public static void main(String[] args) {
Interface01 interface01 = new Interface01() {
@Override
public void show() {
System.out.println(“我是匿名内部类”);
}
};
interface01.show();
}
此时我们发现此类不需要继承接口,只需在下面的方法里面new一个接口来使用。
所以这个类全局可以继续使用,不能因为这个就单单写一个类
匿名内部类的简便方法
public class In {
public static void main(String[] args) {
Interface01 interface01 = new Interface01() {
@Override
public void show() {
System.out.println("我是匿名内部类");
}
};
interface01.show();
new Interface01(){
@Override
public void show() {
System.out.println("我是匿名内部类的快捷方法,我也是匿名内部类");
}
}.show();