java创建匿名内部类
时间: 2023-12-13 10:31:48 浏览: 42
Java中的匿名内部类是一种没有名字的局部内部类,它通常用于创建一次性的类。下面是一个创建匿名内部类的例子:
```java
interface A {
public void method();
}
public class AnonymousInnerClassDemo {
public static void main(String[] args) {
A a = new A() {
@Override
public void method() {
System.out.println("我是method");
}
};
a.method();
}
}
```
在上面的例子中,我们定义了一个接口A,并在main方法中创建了一个实现了该接口的匿名内部类。在匿名内部类中,我们重写了接口A中的method方法,并在其中输出了一句话。最后,我们调用了a对象的method方法,输出了"我是method"。
相关问题
java匿名内部类创建
Java中可以使用匿名内部类来创建实现某个接口或继承某个类的对象。匿名内部类的语法格式为:new 父类构造器或接口() { 匿名内部类的类体 }。下面是一个例子:
```java
public class AnonymousInnerClassExample {
interface HelloWorld {
void greet();
void greetSomeone(String someone);
}
public void sayHello() {
class EnglishGreeting implements HelloWorld {
String name = "world";
public void greet() {
greetSomeone("world");
}
public void greetSomeone(String someone) {
name = someone;
System.out.println("Hello " + name);
}
}
HelloWorld englishGreeting = new EnglishGreeting();
HelloWorld frenchGreeting = new HelloWorld() {
String name = "tout le monde";
public void greet() {
greetSomeone("tout le monde");
}
public void greetSomeone(String someone) {
name = someone;
System.out.println("Salut " + name);
}
};
HelloWorld spanishGreeting = new HelloWorld() {
String name = "mundo";
public void greet() {
greetSomeone("mundo");
}
public void greetSomeone(String someone) {
name = someone;
System.out.println("Hola, " + name);
}
};
englishGreeting.greet();
frenchGreeting.greetSomeone("Fred");
spanishGreeting.greet();
}
public static void main(String[] args) {
AnonymousInnerClassExample myApp =
new AnonymousInnerClassExample();
myApp.sayHello();
}
}
```
在上面的例子中,我们定义了一个接口HelloWorld,然后使用匿名内部类来实现这个接口。我们创建了三个HelloWorld对象,分别是EnglishGreeting、frenchGreeting和spanishGreeting。其中,EnglishGreeting是一个普通的内部类,而frenchGreeting和spanishGreeting是匿名内部类。我们可以看到,使用匿名内部类可以简化代码,并且不需要单独定义一个类。
java 匿名匿名内部类
匿名内部类是在 Java 中定义一个没有具体名称的内部类的方式。它可以用来实现接口或继承抽象类,同时也可以直接实例化对象并重写其方法。
以下是匿名内部类的基本语法:
```java
接口名/父类名 对象名 = new 接口名/父类名() {
// 匿名内部类的成员变量和方法
};
```
例如,假设有一个接口 `Runnable`,我们可以通过匿名内部类创建一个实现该接口的对象:
```java
Runnable runnable = new Runnable() {
@Override
public void run() {
// 重写接口方法
System.out.println("Hello, world!");
}
};
```