知识点:
匿名内部类依旧是一个类,但是没有名字,同时还是一个对象;再类的内部;
使用方法指南:
- 先创建一个类,可以是接口、抽象类、普通父类
- 需要明确声明关系 ,父与子、实现接口、抽象方法重写 例如:XX extends XX
- 在另一个类中调用,写一个方法,用来 new 父类的子方法cry();
- 在子类重写 cry(); 方法后,自己调用该方法;
- 在主方法 main() 中调用子类即可;
场景一:子类调用父类方法
这是父类
class Animal{
    public void cry(){
        System.out.println("这是父类的cry()方法~");
    };
}子类 (Outer) 继承父类,实现方法重写:
class Outer extends Animal{
    public void method(){
        Animal animal = new Animal() {
            @Override
            public void cry() {
                System.out.println("这是匿名内部类~");
            }
        };
        animal.cry();//调用cry()方法
    }在主函数中调用Outer子类 :
public static void main(String[] args) {
        Outer outer = new Outer();
        outer.method();
    }场景2:抽象方法:
首先定义一个抽象类,并且定义一个抽象方法:
abstract class Animal {
    abstract public void cry();
}再定义一个类,并且实现方法重载的方法:
class Outer {
    public void method(){
        Animal animal = new Animal() {
            @Override
            public void cry() {
                System.out.println("这是匿名内部类~");
            }
        };
        animal.cry();
    }
主函数:(与上文一致)
public static void main(String[] args) {
        Outer outer = new Outer();
        outer.method();
    }场景3:实现接口
首先,定义一个接口:
interface Animal {
    public void cry();
}
再定义一个类,并且实现方法重载的方法:
class Outer{
    public void method(){
        Animal animal = new Animal() {
            @Override
            public void cry() {
                System.out.println("这是匿名内部类~");
            }
        };
        animal.cry();
    }
}主函数与上文一致,省略;
运行结果:

相信看到这里的小伙伴对匿名内部类,已经有一定的了解了。匿名内部类的使用方法很简单,主要就是实现方法的重载,不用手动创建新的对象,系统会自己分配对象名。使用方法便捷,调用简单。



















