有人可以解释这段代码中发生的事情。无法理解简单的oops程序

时间:2015-03-24 10:36:43

标签: java oop

interface Foo1 
{ 
  int bar(); 
}

class Sprite 
{
  public int fubar( Foo1 foo ) 
  {
    return foo.bar(); 
  }

  public void testFoo() 
  {
    fubar(
      new Foo1() 
      { 
        public int bar() 
        { 
          return 1;
        }
      }
    );
  }
}

无法理解fubar()方法。有些机构可以向我解释这个程序

2 个答案:

答案 0 :(得分:1)

因此,根据您的代码,您有一个名为Foo1的接口,其中包含一个名为bar()的抽象方法。

Sprite类有两个方法fubar和testFoo。

在你的fubar方法中,它将Foo1对象作为参数并返回foo.bar()值。

Inisde你的testFoo方法,你正在调用fubar方法,并在其中实现抽象的bar()方法,它返回1作为整数值。

您的代码中仍然没有主要方法,因此还没有输出。

这是您的代码概述,如果您想要更多说明,请告知。

答案 1 :(得分:0)

方法testFoo创建一个实现Foo1接口的匿名内部类的实例,并将其传递给它(它实际上将指针的值传递给fubar方法。 / p>

fubar方法调用bar实例上的Foo1方法返回结果。

fubar方法会忽略testFoo方法的结果。

实际效果是,此代码并未真正执行当前显示的任何操作。