匿名内部类就是没有名字的内部类
匿名内部类的三种情况:
一、继承式的匿名内部类
二、接口式的匿名内部类
匿名内部类的三种情况:
一、继承式的匿名内部类
二、接口式的匿名内部类
三、参数式的匿名内部类
在使用匿名内部类时,要记住以下几个原则:
(1)不能有购置方法,只能有一个实力。
(2)不能定义在任何静态成员、静态方法。
(3)不能是public.protected.private.static.
(4)一定是在new的后面,用其隐含实现一个接口或一个类。
(5)匿名内部类为局部的,所以局部内部类的所有限制都对其有效。
内部类的作用:
每个内部类都能独立地承受来自一个(接口的)实现。所以无论外部类是否已经继承了某个(接口的)实现,
对于内部类都没有影响。
如果没有内部类提供的可以继承多个具体的或抽象的类的能力,一些设计与编程问题就很难解决。从这个教的看,内部类的使得多继承的解决方案变得完整。接口解决了部分问题,而内部类有效地实现了“多重继承”。
public class test_12_3
{
public static void main(String[] args)
{
OuterClass outer = new OuterClass();
outer.print_3();//接口式的匿名内部类
outer.print_4(new Child() //参数式匿名内部类
{
public void desc()
{
System.out.print("参数式匿名内部类");
}
});
}
}
class OuterClass
{
public void print_3()
{
/*class InnerClass_3 implements Child//继承式的匿名内部类
{
}*/
//也是Android重要写法
Child c = new Child()//直接调用内部类(new的是匿名内部类)
{
public void desc()//匿名内部类对象
{
System.out.println("匿名内部类");
}
};
c.desc();// 内部实现
}
public void print_4(Child c)
{
c.desc();
}
}
interface Child //匿名内部类练习
{
public void desc();
}