Java函数= function2

时间:2014-03-14 06:04:38

标签: java

我对Java有些新意,我想知道是否有办法以某种方式改变类的功能。

Class pager = new Pager();// everything is initialized
pager.dostuff() = function(){};

是否有特定的名称,是否可以用Java做?如果没有,是否有允许它的语言?

感谢您的时间。

编辑:

澄清这个问题,因为最初似乎我想用不同的函数初始化新类。事实并非如此。我想在它已经创建之后改变它。这样做的原因是我和android一起工作,我得到的是来自xml。是否有可能改变班级'我得到这样的课程时的功能吗?

Pager pager = (ViewPager) findViewById(R.id.pager)

我觉得我必须要创建一个新课程,这很好,但我想知道我是否可以这样做。

3 个答案:

答案 0 :(得分:5)

在java中,您可以在运行时覆盖方法,如 -

Pager pager = new Pager(){
  @Override
  public void dostuff(){
     ....
  }
};

运行时它将创建Pager的子类并覆盖doStuff方法。

答案 1 :(得分:1)

当然..通过一个匿名的内部类覆盖一个类,同时继承被覆盖的类的所有属性。

Pager pager = new Pager(){
  public void dostuff(){
     ....
  }
}

PS: - 注意,在匿名内部类之外,您可以通过您的匿名内部类的实例仅调用父类中存在的那些方法

答案 2 :(得分:0)

Java不提供像这样的功能。 也许您可以覆盖子类中的函数。

您在上面展示的内容可以在Ruby中完成(我认为)。

覆盖

Pager pager = new Pager() {
    @Override
     public void doStuff() {
        doSomethingElseFunct();
    }
};