1.什么是匿名内部类
首先要了解匿名内部类是局部内部类的一种,是一种需要在方法的内部创建对象并使用的
2.什么情况下可以用到匿名内部类
1.当存在一个接口或者抽象方法;
2.某个方法的参数是这个接口
//例如存在一个接口
package com.itheima.neibunei.demo06;
public interface GetToken {
public void getUserInfo();
}
public class RegistController {
//该接口的实现类作为参数
public static void getOneHealth(GetToken getToken){
getToken.getUserInfo();
}
}
3.如何使用匿名内部类
当某个方法的参数是接口时,在不用匿名内部类的方式时,我们首先对该接口进行一个实现,然后进行传参,但这种方法我们会多建一个Java类,显然匿名内部类就是简化这种方式.我们直接在使用该方法时直接对该接口进行一个实现.
public class Test {
public static void main(String[] args) {
//如果不使用匿名内部类,我们就要为这个接口写一个实现,让其作为参数,但显然新建一个Java文件要麻烦很多
//GetToken getToken = new GetTokenImpl();
//RegistController.getOneHealth(getToken);
RegistController.getOneHealth(new GetToken() {
@Override
public void getUserInfo() {
System.out.println("匿名内部类");
}
});
}
}
4.匿名内部类的优势
当项目中的一个接口已经做过了实现,现在需要你在不增加文件的情况下对该接口增加一个功能,但该功能与原有的实现功能完全不搭嘎,这是可以考虑使用匿名内部类的形式对该接口做功能增强.
本文介绍了Java中的匿名内部类,它是一种局部内部类的特殊形式,常用于简洁地实现接口或抽象方法。当一个方法需要接口类型的参数时,匿名内部类可以简化代码,避免创建额外的类文件。通过示例展示了如何在`RegistController`类中使用匿名内部类实现`GetToken`接口,并在`Test`类中调用。匿名内部类的优势在于能够在不增加新文件的情况下快速扩展功能,尤其适用于功能增强或临时需求。
870

被折叠的 条评论
为什么被折叠?



