美文网首页
匿名内部类 ~ 内部类之二

匿名内部类 ~ 内部类之二

作者: 喏喏2021 | 来源:发表于2022-01-23 21:45 被阅读0次

1. 基本使用

public class AnonymousClassTest {
       //一个接口
    interface AnonymousClass {
        int value();
    }   
    public AnonymousClass getAnonymousClass(){
                //新建一个接口实现类
        return new AnonymousClass(){
            private int value = 10;
            public int value(){
                return value;
            }
        };
    }   
    public static void main(String[] args) {
        AnonymousClassTest a = new AnonymousClassTest();
        AnonymousClass c = a.getAnonymousClass();
        System.out.println(c.value());
    }
}

上面的语法看着是不是有点奇怪呢,一个接口怎么也可以用new了呢,
应该是一个实体类实现了这个接口,并作接口方法的具体实现,其实它是已经做到了

2. 对抽象类进行初始化

abstract class AnonymousBase {
    public AnonymousBase(int i){
        System.out.println("init,i="+ i);
    }
    public abstract void value(int j);
}

public class AnonymousClassInit {
        //这里的i,因为没有接下来使用,所以不需要使用final
        //这里的j,因为在value方法中使用了,所以需要使用final类型
    public static AnonymousBase getBase(int i,final int j){
        return new AnonymousBase(i){
             public void value(int v){
                 System.out.println("anonymous value()=" + (j+v));
             }
        };
    }
    
    public static void main(String[] args) {
        AnonymousBase base = getBase(1,2);
        base.value(2);
    }
}
//init,i=1
//anonymous value()=4

通过上面的例子可以看:

  • 匿名内部类可以扩展类,也可以实现接口
  • 我们只能选择一个,扩展类或是接口,是接口的话,也只能是一个

相关文章

  • 内部类

    成员内部类 局部内部类(定义在方法内和定义在作用域内的类) 匿名内部类

  • Java 内部类

    内部类包括成员内部类、方法内部类、*静态内部类、匿名内部类*。 内部类的作用 由于内部类的实现和外部类没有关系,内...

  • Java 内部类、静态内部类、方法内部类(未完待续)

    内部类 什么是内部类?内部类其实就是在一个类中创建的类。内部类有四种: 成员内部类 静态内部类 局部内部类 匿名内...

  • java 内部类

    一般有四种内部类的使用方式: 嵌套的内部类 方法内的内部类 静态内部类 匿名内部类 什么时候用内部类: 有时候明显...

  • Java匿名内部类

    导语 学完匿名内部类就懂的情书。 主要内容 接口与抽象类和匿名内部类的关系 具体内容 匿名内部类也就是没有名字的内...

  • java中的匿名内部类总结

    匿名内部类也就是没有名字的内部类 正因为没有名字,所以匿名内部类只能使用一次,它通常用来简化代码编写 但使用匿名内...

  • Java 内部类

    1. 内部类 概念:在一个类的内部再定义一个完整的类内部类分为 4 类:成员内部类、静态内部类、局部内部类、匿名内...

  • Java内部类

    Java内部类,简单来说就是将一个类定义在另一个类或者方法里面,主要分为成员内部类,局部内部类,匿名内部类和静态内...

  • java se 成员内部类

    一个类内部包含另一个类身体与心脏分类:1、成员内部类2、局部内部类(匿名内部类) 1、成员内部类 注:内用外可直接...

  • Android菜鸟起飞|三种方法实现监听事件

    Android实现监听事件的三种方式(匿名内部内实现,外部类实现,接口实现)详解 1. 使用匿名内部类的方式实现监...

网友评论

      本文标题:匿名内部类 ~ 内部类之二

      本文链接:https://www.haomeiwen.com/subject/cngmhrtx.html