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();
    }
  • 相关阅读:
    Elixir 学习资源
    elixir 模块
    elixir 表单 map
    elixir 关键字列表
    elixir case cond if
    elixir 模式匹配
    elixir 基础数据结构
    5、OpenCV Python ROI和泛洪填充
    6、OpenCV Python 图像模糊
    4、OpenCV Python 像素运算
  • 原文地址:https://www.cnblogs.com/yaowen/p/9471389.html
Copyright © 2011-2022 走看看