内部类的特点
内部类访问外部的用法和实例内部类
内部类之匿名内部类
- 实现接口:
public interface Greeting {
void greet();
}
public class Main {
public static void main(String[] args) {
Greeting greeting = new Greeting() {
@Override
public void greet() {
System.out.println("Hello, World!");
}
};
greeting.greet();
}
}
在上面的例子中,我们定义了一个接口Greeting
,然后使用匿名内部类来实现该接口并覆盖其方法。通过实例化接口对象时直接定义匿名内部类,我们可以在同一位置定义接口的实现逻辑,从而使代码更加简洁。
2.继承抽象类:
abstract class Shape {
abstract void draw();
}
public class Main {
public static void main(String[] args) {
Shape shape = new Shape() {
@Override
void draw() {
System.out.println("Drawing a shape");
}
};
shape.draw();
}
}
在这个例子中,我们定义了一个抽象类Shape
,然后使用匿名内部类来继承该抽象类并实现其抽象方法。通过匿名内部类,我们可以在创建抽象类对象时同时提供实现逻辑,避免了额外定义一个具体的子类。