zoukankan      html  css  js  c++  java
  • 匿名内部类和内部类中的this

    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() {
            //输出A
            System.out.println(this.toString());
            // 输入A,父类方法中使用真正子类对象用"父类.this"
            System.out.println(B.this.toString());
    
            say1(new I() {
                public void II() {//匿名内部类的this
                    System.out.println(this);//B$1
                    System.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
            }
        }
    }
    package test;
    
    public interface I {
        void II();
    }
  • 相关阅读:
    spring-mvc dispatcherServlet
    常用注解
    spring基础
    消息转换
    高级装配
    Leetcode第242题:有效的字母异位词
    Leetcode第76题:最小覆盖子串
    Leetcode633题平方数之和
    Leetcode454题四数之和II
    java从虚拟机执行角度解析案例(转)
  • 原文地址:https://www.cnblogs.com/yaowen/p/9471389.html
Copyright © 2011-2022 走看看