转载链接:https://www.cnblogs.com/yaowen/p/9471389.html
代码使用模板使用:
package test;public class A extends B {public String toString() {return "A";}public static void main(String[] args) {A a = new A();a.say();A.AIn aa = a.new AIn();aa.bin();}class AIn extends BIn{}}
package test;public class B {public Thread thread;public void say() {//输出ASystem.out.println(this.toString());// 输入A,父类方法中使用真正子类对象用"父类.this"System.out.println(B.this.toString());say1(new I() {public void II() {//匿名内部类的thisSystem.out.println(this);//B$1System.out.println(B.this);//A
// System.out.println(A.this); 父类是访问不到子类A的,只能写B. 不能写B.A的属性,只能写B.B的属性,也就是给子类A对象赋值,因为访问不到A的任何东西thread = Thread.currentThread();B.this.thread = Thread.currentThread();}});}public String toString() {return "B";}public void say1(I i) {i.II();}class BIn{public void bin() {B.this.thread = Thread.currentThread();
// A.this.thread = Thread.currentThread(); 父类是访问不到子类A的,只能写B.System.out.println(B.this);//A}}
}