Java - 差异((classType)this).m1()和静态引用

时间:2017-01-17 13:01:50

标签: java inheritance binding

在Java中,一个对象可以像这样调用父方法:((Father) this).m1(); 有什么不同之处:Father f = sonObj; f.m1();

public Father extends Object {
public void m1(){}
}

public Son extends Father {
  public void m1() {
    ((Father) this).m1();
  }
}

1 个答案:

答案 0 :(得分:1)

  

Java - 差异((classType)this).m1()和静态引用

Father f = sonObj; f.m1();

详细信息,但它不是静态引用,而是引用。

  

在Java中,一个对象可以像这样调用父方法:

((Father)this).m1(); 
  

有什么不同:

Father f = sonObj; f.m1();

在这两种情况下,您都会调用m1()this引用的实例的sonObj方法。 在您的示例中,这些是Son个实例。 因此,该方法将调用Son m1()方法。

要调用Parent类的m1()方法,您应该这样做:

public Son extends Father {
  public void m1() {
     super.m1();
  }
}