匿名内部类隐藏的super
时间: 2023-07-26 10:32:52 浏览: 97
匿名内部类可以继承一个父类或者实现一个接口,如果继承的是一个父类,那么在匿名内部类中可以使用 `super` 关键字来调用父类的方法或者构造函数,但是由于匿名内部类没有名字,所以 `super` 关键字也会被隐藏起来。如果要在匿名内部类中调用父类的方法或者构造函数,可以使用 `super` 关键字加上括号来实现。例如:
```java
父类对象.父类方法(参数);
super(参数);
```
相关问题
匿名内部类有隐藏的super吗
是的,和普通的内部类一样,匿名内部类也有隐藏的 `super`。当匿名内部类继承自一个父类时,可以使用 `super` 关键字来调用父类的构造方法或者实例方法。当匿名内部类实现一个接口时,可以使用 `super` 关键字来调用接口的默认方法。但是由于匿名内部类没有名字,因此 `super` 关键字也会被隐藏起来,需要使用以下格式来调用:
- 调用父类构造方法:`super(参数列表);`
- 调用父类实例方法:`super.父类方法名(参数列表);`
- 调用接口默认方法:`接口名.super.默认方法名(参数列表);`
需要注意的是,匿名内部类只能访问其外部类中的 `final` 局部变量和外部类的成员变量,因为这些变量在编译时被复制到了匿名内部类中。如果要访问其他局部变量,需要将其声明为 `final`。
阅读全文