package com.javase.进阶.内部类;
/**
* 关于匿名内部类:
* 1、什么是内部类:在类的内部又定义了一个新的类,这个新类被称为内部类。
*
* 2、内部类的分类:
* 静态内部类:类似静态变量
* 实例内部类:类似实例变量
* 局部内部类:类似局部变量
* 匿名内部类是局部内部类中的一种,因为这个类没有名字而得名。
*
* 3、学习匿名内部类的主要目的是能读懂别人写的代码,其缺点:
* - 太复杂,太乱,可读性差
* - 类没有名字,不能重复使用
*
* 4、使用内部类编写代码,可读性很差,能不用尽量不用
*/
public class Text {
public static void main(String[] args) {
// 不采用匿名内部类写成如下代码
MyMath mm = new MyMath();
mm.mySum(new ComputeImpl(),100,200);//这里new的是实现类
// 以下采用匿名内部类写代码
// 使用匿名内部类仅仅是少写了一个实现类而已
// 这里直接new接口(接口本来是不可以直接new对象的),然后在{}中实现接口中的抽象方法
mm.mySum(new Compute() {
public int sum(int a, int b) {
return a + b;
}
},200,300);
}
}