java匿名内部类的练习
时间: 2023-12-08 18:38:11 浏览: 121
Java匿名内部类是没有名字的内部类,它通常用于创建实现某个接口或继承某个类的对象。下面是三种Java匿名内部类的练习:
1.创建一个匿名内部类对象并调用其方法
```java
new Object(){
void method(){
System.out.println("匿名内部类的使用");
}
}.method();
```
2.通过父类或父接口的变量接受匿名子类/匿名实现类的对象,然后多态调用
```java
abstract class Base{
public abstract void method();}
Base b = new Base(){
@Override
public void method(){
System.out.println("匿名内部类重写父类的抽象方法method");
}
};
b.method();
```
3.把匿名内部类的匿名对象直接作为另一个方法调用的实参
```java
test(new Base(){
@Override
public void method(){
System.out.println("匿名内部类重写父类的抽象方法method");
}
});
public static void test(Base b){
b.method();
}
```
相关问题
如何创建一个匿名内部类
在Java中,创建匿名内部类通常用于传递实现了接口的对象,尤其是当接口只有一个抽象方法需要实现时。以下是创建匿名内部类的基本步骤[^1]:
1. **确定接口**:首先,你需要确定你要让匿名内部类实现的接口。例如,`Runnable`接口常用于线程定义。
```java
Runnable task = new Runnable() {
public void run() {
// 这里是匿名内部类的方法实现
}
};
```
2. **实现接口方法**:在花括号内,直接编写实现接口所需的方法。这里假设`run()`方法需要执行一些操作。
3. **调用接口方法**:你可以立即调用这个匿名内部类的方法,就像对待普通类一样。
```java
task.run();
```
注意,如果你要创建的匿名内部类还继承了一个有构造函数的父类,那么你需要在初始化时传递必要的参数[^2]。
对于初学者,可能需要通过实际的练习来熟悉匿名内部类的用法。例如,给定的练习题目要求你完成`Test.function().method();`这句代码,你需要先确定`function()`返回的是什么样的接口类型,以及`method()`是什么方法。
阅读全文