首先说为什么有匿名类(产生的使命)
两个原因
1.简化代码编写
某种情况下,类只需要扩展一个方法,没必要为了一个方法单独去写一个子类,然后然后调用子类,此时需要匿名类
2.在不同的包内的类内调用类的protected方法(其实,也可以理解和第一个原因是一样的)
匿名类继承了父类,并调用了父类的protected方法
条件:
匿名类完成上述使命,则需要继承一个类或者实现某个接口
形式:new
示例1:
/**
* 一般类
* @author masan
*
*/
class Normal{
public void func(){
System.out.println("do with name");
}
}
public class UnNamedClass {
public static void main(String[] args) {
Normal m = new Normal(){
public void func(){
System.out.println("do without name");
};
};
m.func();
}
}
输出结果为:"do without name",
匿名类继承了Normal类,并且