匿名内部类的使用规范
* 匿名内部类在编译时 由系统自动起名
*匿名内部类用于继承其他类或实现接口,并不需要增加额外的方法,只是对继承的方法的实现与重写。
*匿名内部类是唯一一个没有构造函数的类。
匿名内部类的使用
*只用到类的一个实例。
*类在定义后马上使用。
*类非常的小。
*给类命名并不会导致你的代码更容易被理解。
关键技术解析
*匿名内部类不能有构造方法。
*匿名内部类不能有静态成员变量,方法和类
*匿名内部类不能被public ,protected,private ,static修饰
*只能创建匿名内部类的一个实例。
*一个匿名内部类是能在new后面,用其隐含实现一个接口或一个类。
*因匿名内部类属于局部内部类,所以局部内部类饿所有限制都对其生效。
实例讲解匿名内部类的使用规则
public class Test{
public static void main(String[] args)
{
Test test=new Test();
test.testInterface();
test.testAbstract();
test.testClass();
}
public void testInterface(){
A_interface ai=new A_interface(){
@Override
public void show() {
// TODO Auto-generated method stub
System.out.println("1.在匿名内部类中,实现了A_interface接口中的show方法");
}
};
ai.show();
}
public void testAbstract()
{
A_abstract aa=new A_abstract(){
@Override
void show() {
// TODO Auto-generated method stub
System.out.println("2.在匿名内部类中,实现了A_abstract抽象类中的抽象show方法");
}
};
aa.show();
}
public void testClass()
{
A_class ac=new A_class(){
public void show(){
System.out.println("3.在匿名内部类中,重写了A_class类中的show方法");
}
};
ac.show();
}
}
interface A_interface
{
public void show();
}
abstract class A_abstract{
abstract void show();
}
class A_class
{
public void show(){
System.out.println("这是一个普通的类!");
}
}
——摘自Java案例