class Anony
{
public void hi()
{
System.out.println("hi?");
}
public void hello()
{
System.out.println("hello?");
}
}
public class AnonyDemo2
{
public static void main(String[] args)
{
Anony ob=new Anony()
{
public void hi()
{
System.out.println("你好");
}
};
ob.hi();
ob.hello();
}
}
请问这两个public void hi()方法怎样理解?

解决方案 »

  1.   

    相当于你写了个子类,重载了Anony原类中hi()这个函数。
      

  2.   

    重写了Anony的hi方法,另外这是匿名类吗...
      

  3.   

    匿名内部类的实质就是。
    你写了一个隐含名称的类,继承自了父类。
    你在匿名内部类中重载了父类的方法。
    当你
    Anony ob=new Anony(){
    public void hi()
    {
    System.out.println("你好");
    }
    };
    时。就相当于new了一个子类,然后将引用交给了父类。
    当你通过ob变量名调用方法时,下面就是多态的事情了。这个你知道吧。