java 匿名匿名内部类
时间: 2023-11-10 20:00:50 浏览: 100
匿名内部类是在 Java 中定义一个没有具体名称的内部类的方式。它可以用来实现接口或继承抽象类,同时也可以直接实例化对象并重写其方法。
以下是匿名内部类的基本语法:
```java
接口名/父类名 对象名 = new 接口名/父类名() {
// 匿名内部类的成员变量和方法
};
```
例如,假设有一个接口 `Runnable`,我们可以通过匿名内部类创建一个实现该接口的对象:
```java
Runnable runnable = new Runnable() {
@Override
public void run() {
// 重写接口方法
System.out.println("Hello, world!");
}
};
```
相关问题
java匿名内部类和lamabda
Java匿名内部类是指在使用接口或父类的地方,直接创建一个没有类名的类体的对象,并实现接口或继承父类的方法。匿名内部类可以访问外部嵌套类中的成员变量和方法,并且在匿名内部类的类体中不能声明static成员变量和static方法。Lambda表达式是Java 8引入的一种简洁的函数式编程语法。它可以用来创建匿名函数,即没有方法名的函数对象。Lambda表达式可以用来实现函数式接口中的抽象方法。
java匿名内部类的练习
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();
}
```
阅读全文