我有一个抽象类。

public abstract class MHandle {
    public MHandle getMHandle(){
        return this;
    }
}


我还有另一门课叫做House

public class House extends MHandle{
    public void methodA(){
    }
}


做这样的事情的意义是什么

public void methodA(){
    MHandle mh = getMHandle();
}

最佳答案

两者之间绝对没有区别:

public void methodA(){
   MHandle mh = getMHandle();
   mh.toString();
}


还有这个

public void methodA(){
   this.toString();
}


还有这个

public void methodA(){
   toString();
}


还有这个

public void methodA(){
   this.getMHandle().getMHandle().getMHandle().getMHandle().
      getMHandle().getMHandle().toString();
}


这种差异在任何情况下都是正确的。在MHandle类或其具体子类(例如House)的内部,以及在那些有权访问或无法访问MHandle类的类的内部。我完全看不到getMHandle()的意义,如果要做的只是返回一个自引用而不做任何有用的事情。

09-27 17:34