列据多个例子详细并生动形象说明java中匿名内部类怎么使用
在Java中,匿名内部类是一种特殊的内部类,它没有显式的类名,并且通常在创建对象的同时定义。下面是几个例子,详细说明了匿名内部类的使用方法:
- 实现接口:
interface Greeting {
void sayHello();
}
public class Main {
public static void main(String[] args) {
Greeting greeting = new Greeting() { // 创建一个实现了Greeting接口的匿名内部类对象
@Override
public void sayHello() {
System.out.println("Hello!");
}
};
greeting.sayHello(); // 输出 "Hello!"
}
}
在上面的例子中,我们使用匿名内部类创建了一个实现了Greeting接口的对象,并在对象的内部重写了接口方法。
- 继承抽象类:
abstract class Animal {
abstract void makeSound();
}
public class Main {
public static void main(String[] args) {
Animal animal = new Animal() { // 创建一个继承了Animal抽象类的匿名内部类对象
@Override
void makeSound() {
System.out.println("Meow!");
}
};
animal.makeSound(); // 输出 "Meow!"
}
}
在上面的例子中,我们使用匿名内部类创建了一个继承了Animal抽象类的对象,并在对象的内部重写了抽象方法。
- 局部变量引用:
public class Main {
public static void main(String[] args) {
String message = "Hello!";
Runnable runnable = new Runnable() { // 创建一个实现了Runnable接口的匿名内部类对象
@Override
public void run() {
System.out.println(message);
}
};
runnable.run(); // 输出 "Hello!"
}
}
在上面的例子中,我们使用匿名内部类创建了一个实现了Runnable接口的对象,并在对象的内部引用了局部变量message。
通过以上例子,我们可以看到匿名内部类的使用方法,它可以用来实现接口、继承抽象类,甚至引用外部的局部变量。匿名内部类通常用于简化代码,特别是在只需要使用一次的情况下
原文地址: https://www.cveoy.top/t/topic/ifXC 著作权归作者所有。请勿转载和采集!