interface IA
{
void fun();
}
class A
{
public IA show(){
//定义了一个有名字的内部类;
/* class B implements IA
{
public void fun(){
System.out.println("B-->fun()");
}
}
IA a = new B();
return a;
*/
//************使用匿名的内部类***************//
//既然内部类的名字,对外部来说没有什么用,可以使用匿名的
IA a = new IA(){//IA a = new B();//定义一个IA的子类,并且实例化了
//内部,必须实现IA接口中的抽象方法
public void fun(){
System.out.println("B-->fun()");
}
};
return a;
//写法的格式:new 接口/抽象类(){//重写方法};
/* return new IA(){
//内部,必须实现IA接口中的抽象方法
public void fun(){
System.out.println("B-->fun()");
}
};
*/
}
}
class Demo
{
public static void main(String[] args)
{
A a = new A();
IA obj = a.show();
obj.fun();//调用匿名内部类的方法;
}
}