首页 > 其他 > 详细

匿名内部类

时间:2019-09-03 19:43:28      阅读:102      评论:0      收藏:0      [点我收藏+]

1、匿名内部类:没有名字,只有唯一的对象,在声明类的同时就创建好了这个对象。

2、语法格式:

new 父类(){
    成员列表
}

new 父类(实参列表){
    成员列表
}

new 父接口(){
    
}

  

3、使用匿名内部类的形式一般是三种

(1)多态引用:通过父类或父接口的变量对匿名内部类的对象进行多态引用

多态引用,只能重写父类或父接口的方法,才能调用到,否则自己扩展的方法是无法调用的。

interface A{
    void a();
}

A obj = new A(){
    public void a(){
        //.....
    }  
};

obj.a();

  

class Father{
    public void method(){
        //...
    }
}

Father f = new Father(){
  public void method(){
      //....
  }  
};

f.method();

  (2)匿名内部类的匿名对象直接调用方法

new Object(){
    public void test(){
        //...
    }
}.test();

//这个test方法不是父类Object类中的,只能这么调用

  (3)匿名内部类的匿名对象作为方法调用的“实参”

class Student{
    private int id;
    private String name;
    private int score;
    //...
}

Student[] arr = new Student[3];
arr[0] = new Student(1,"张三",89);
arr[1] = new Student(2,"李四",80);
arr[2] = new Student(3,"王五",86);

//按照成绩从高到低
Arrays.sort(arr, new Comparator(){
    public int compare(Object o1, Object o2){
        Student s1 = (Student)o1;
        Student s2 = (Student)o2;
        return s2.getScore() - s1.getScore();
    }
});

  

匿名内部类

原文:https://www.cnblogs.com/panyizuoshan/p/11454884.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!