Java 快速理解匿名内部类,以及它的使用场景,注意事项

Java 快速理解匿名内部类

这篇文章主要讲解Java中匿名内部类的使用以及注意事项。匿名:没有名字的意思。内部类:写在其他类内部的类。匿名内部类的作用是简化代码。

原本我们需要创建子类或者实现类,去继承父类和实现接口,才能重写其中的方法。但是有时候我们这样做了,然而子类和实现类却只使用了一次(定义了一个对象)。这个时候我们就可以使用匿名内部类,不用去写子类和实现类,起到简化代码的作用。

匿名内部类的格式:父类/接口  对象 = new 父类/接口(){   重写父类/接口中的方法   };       

这样做就把子类继承父类,重写父类中的方法,创建子类对象,合成了一步完成,减少了其中创建子类的过程。或者将实现类实现接口,重写接口中的方法,创建实现类对象,合成了一步完成,减少了其中创建实现类的过程。下面将会用代码演示如何使用匿名内部类。

 

1.创建使用匿名内部类格式:父类 对象 = new 父类(){   重写父类中的方法   };

 

创建父类

public class Fu {
    public void method(){
        System.out.println("我是父类,你想继承我然后再去重写我的方法?");
    }
}

创建Demo类

使用匿名内部类,直接重写父类的方法,省去创建子类继承父类的过程和创建子类对象的过程。

public class Demo {
    public static void main(String[] args) {
        //创建匿名内部类,直接重写父类的方法,省去了创建子类继承,创建子类对象的过程
     Fu fu= new Fu(){
            @Override
            public void method() { //重写父类method方法
                super.method();
                
            }
        };
     fu.method();   //调用method方法
    }

 

2.创建使用匿名内部类格式:接口 对象=new 接口(){ 重写接口中的方法 };

 

创建接口AnonymousInter

public interface AnonymousInter {
    public abstract void eat();
}

创建Demo1类

使用匿名内部类,直接重写接口中的方法,省去创建实现类实现接口的过程和创建实现类对象的过程。

public class Demo1 {
    public static void main(String[] args) {
        //创建匿名内部类,省区了创建接口的实现类的过程,以及定义实现类对象的过程
        AnonymousInter an=new AnonymousInter() {
            @Override
            public void eat() {  //重写接口的eat方法
                System.out.println("晚饭我吃了");
            }
        };
        an.eat();
    }
}

 

3.由上我们可以总结,匿名内部类在父类和接口中可以起到简化代码的作用。因为可以省去创建子类和实现类的过程。 我们可以直接利用父类和接口得到我们想要的东西,因此匿名内部类的最终产物是 子类/实现类对象。

 

4.如果想了解更多的JAVA知识,可以关注落花一叶知秋博主。博主会跟着大家一起成长。

你可能感兴趣的:(Java,Java匿名内部类,Java,Java基础知识,Java匿名内部类)