代码多态性示例之间的区别

时间:2015-09-13 20:54:08

标签: java polymorphism abstract-class abstract abstraction

package practice;

public abstract class OutterClass {

    public int getMaxRows() {
    }

    public abstract boolean gameOver();
}

public class InnerClass extends OutterClass{

    @Override
    public boolean gameOver() {

        //int lastRow = getMaxRows() - 1;
        //int lastRow = this.getMaxRows() - 1;
        //int lastRow = ((OutterClass)this).getMaxRows() - 1;
        //int lastRow = ((InnerClass)this).getMaxRows() - 1;
        //int lastRow = InnerClass.this.getMaxRows() - 1;

    }

子类中所有注释掉的代码(InnerClass)之间有什么区别?

1 个答案:

答案 0 :(得分:1)

// int lastRow = getMaxRows() - 1;
// int lastRow = this.getMaxRows() - 1;
// int lastRow = ((OutterClass)this).getMaxRows() - 1;
// int lastRow = ((InnerClass)this).getMaxRows() - 1;

这些都是相同的。最后一点特别没有意义。

// int lastRow = InnerClass.this.getMaxRows() - 1;

这不会编译。

NB与您的命名相反,这里没有内部课程。