2015-09-13 20 views
1
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
// 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; 

这不会编译。

注意与您的术语相反,这里没有内部类。

相关问题