匿名内部类

内部类

内部类: 可以将一个类的定义放在另一个类的定义的内部, 这就是内部类

举个例子

Apple就是内部类

public class Test {

    class Apple {
        private String name;
        private int weight;
        Apple(String name, int weight) {
            this.name = name;
            this.weight = weight;
        }
        public void print() {
            System.out.println("apple : " + name + " " + weight); 
        }

    }
}

匿名内部类

函数式接口: 只定义了一个抽象方法的接口

 举个匿名类的例子:

public class test {
public static void main(String[] args) { Runnable r = new Runnable() { public void run() { System.out.println("Hello World"); } }; r.run(); } }

其中Runnable()是一个接口; 并且为函数式接口

Public interface Runnable {
        void run();
}

匿名内部类即实现一个接口并且不指定姓名, 而其只能实现 只有一个抽象方法的 接口

正常上面的例子

public class Test {
    public static void main(String[] args) {
        Runnable r =  new Rtest();
        r.run();
    }

}

class Rtest implements Runnable {
    public void run() {
        System.out.println("Hello World");
    }
}
原文地址:https://www.cnblogs.com/smuzoey/p/11786091.html