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

difference between code polymorphism examples

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;

    }

子类(内部类)中所有注释掉的代码有什么区别?

// 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;

这不会编译。

注意:与您的命名法相反,此处没有内部 类。