所谓匿名内部类.可以理解为没有显式声明出来的内部来
问题描述:我们如果想调用接口里的方法或者继承抽象类里的变量.就要创建一个实现类来实现接口重写方法等还要new对象调用,
如果只是简单想使用一次接口里的方法,如何变得不麻烦
a.创建实现类
b实现接口,重写方法
c创建实现类对象
d调用方法
如果单纯想用接口就可以将上面的方法四合一
匿名内部类格式,这个实现类或者子类对象
new 接口/抽象类{
重写方法}.重写方法(); //这是匿名对象
类名 对象名=new 接口/抽象类{
重写方法}
对象名.重写方法
public class Test {
public static void main(String[] args) {
new USB(){
@Overridepublic void open() {System.out.println("打开成功");}@Overridepublic void close() {
System.out.println("关闭成功");
}
}.open();
USB usb=new USB() {
@Override
public void open() {
System.out.println("打开成功");
}
@Overridepublic void close() {System.out.println("关闭成功");}};//注意这里时匿名内部类创建的对象要加上;usb.open();usb.close();
}
}
public interface USB {
public void open();
public void close();
}
什么时候调用内部类
1.当需要简单使用一次接口中的方法时
2.匿名内部类就是一种格式化方法new出接口对象
3.匿名内部类会编译生成的,只需要按照格式new对象然后调用重写的方法就可以