后者更为明确,如果内部类中存在相同名称的方法,则可以调用外部类方法。
class OuterClass { void foo() { System.out.println("Outer foo"); } View.onClickListener mListener1 = new View.onClickListener() { void foo() { System.out.println("Inner foo"); } @Override public void onClick(View view) { foo(); //Calls inner foo OuterClass.this.foo(); //Calls outer foo } } View.onClickListener mListener2 = new View.onClickListener() { @Override public void onClick(View view) { foo(); //Calls outer foo OuterClass.this.foo(); //Calls outer foo } }}


